C 的可空型別 decimal相關

2021-07-09 01:29:53 字數 797 閱讀 5990

今天,我的c#**拋異常了。**如下,是rpc自動生成的**。

static decimal? c(double x)

這段**涉及到了"值型別"和"可空型別"。

c# 2.0 中引入了可空型別,可空型別也是值型別,只是可空型別是包括null的值型別。

decimal為sql server、mysql等資料庫的一種資料型別,不屬於浮點數型別,在.net環境中,計算該型別的值會有效能上的損失,因為它不是基本型別。

以下**測試了可空型別的使用,測試了decimal可儲存的最大值,分析了c#的exception表達的意思。

using system;

namespace cs_test_decimal

static double? t_double2(double x)

static string t_string(double x)

static decimal? t_decimal(double x)

static void main(string args)

catch (exception ex)

;double dtest = 1.0;

for (int i = 1; i <= 40; ++i)

dtest *= 10;

//出現了乙個有趣的現象:我想得到1.0e+40,結果得到了dtest = 9.9999999999999979e+39。

try catch (exception ex);}

}}

完。

C 可空型別

可空型別只能用於值型別,不能用於引用型別,引用型別本身支援null值。如果直接把null賦值給int型別,會出現乙個錯誤 無法將 null 轉換成 int 因為它是一種值型別 賦值時應該使用 int?a null 可空型別與一元或二元運算子一起使用是,如果乙個運算元或兩個運算元都是null,其結果為...

C 可空型別

c 提供了乙個特殊的資料型別,nullable型別 可空型別 可空型別可以表示其基礎值型別正常範圍內的值,再加上乙個 null 值。例如,nullable int32 讀作 可空的 int32 可以被賦值為 2,147,483,648 到 2,147,483,647 之間的任意值,也可以被賦值為 n...

C 可空型別

在一些情況下,這可能是乙個問題。c 有乙個解決方案 可空型別。可空型別是可以為空的值型別。可空型別只需要在型別的後面新增 在下面的 片段中,x1 是乙個普通的 int x2 是乙個可以為空的 int。因為 x2 是可以為空的 int,所以可以吧 null 分配給 x2 int x1 1 int?x2...