为什么在此代码片段之后:
double? d = 123.4;
decimal? dec = (decimal?)d; //dec is null
是dec的值为null吗?
答案 0 :(得分:4)
我已经在.NET 2.0和.NET 4.0上进行了测试,我得到了dec
123.4
,正如预期的那样。你确定你的断点可能不太高吗?
答案 1 :(得分:2)
dec不为null,为123.4
答案 2 :(得分:1)
我知道这会指出同样的事情。你的代码按预期给了我123,4。它工作正常。
我可以说试试这个:)但结果是一样的:123,4
double? d = 123.4;
decimal? dec = (decimal?)d.Value;
答案 3 :(得分:0)
我最好的猜测是,在强制转换中调用的隐式转换失败,将dec留下null值,而不是你期望的截断/舍入值。
答案 4 :(得分:0)
它不是空的。您必须在其他地方出错。