35
A
回答
3
这取决于你想要如果decimal?
做的是null
,因为decimal
不能null
。如果你想默认是0,你可以使用此代码(使用空合并运算符):
decimal? nullabledecimal = 12;
decimal myDecimal = nullabledecimal ?? 0;
22
尝试使用??
操作:
decimal? value=12;
decimal value2=value??0;
0是你想要的值当decimal?
为空时。
10
您不需要将转换为可以为空的类型以获取其值。
您只需利用Nullable<T>
公开的HasValue
和Value
属性。
例如:
Decimal? largeValue = 5830.25M;
if (largeValue.HasValue)
{
Console.WriteLine("The value of largeNumber is {0:C}.", largeValue.Value);
}
else
{
Console.WriteLine("The value of largeNumber is not defined.");
}
或者,也可以使用在null coalescing operator C#2.0或更高作为快捷方式。
-2
您可以使用。
decimal? v = 2;
decimal v2 = Convert.ToDecimal(v);
如果值为null(V),它将被转换为0
79
有大量的选项...
decimal? x = ...
decimal a = (decimal)x; // works; throws if x was null
decimal b = x ?? 123M; // works; defaults to 123M if x was null
decimal c = x.Value; // works; throws if x was null
decimal d = x.GetValueOrDefault(); // works; defaults to 0M if x was null
decimal e = x.GetValueOrDefault(123M); // works; defaults to 123M if x was null
object o = x; // this is not the ideal usage!
decimal f = (decimal)o; // works; throws if x was null; boxes otherwise
+1
+1。我更喜欢'GetValueOrDefault`,因为它不依赖于C#语法,因此也可以在VB.NET中使用。如果该类型的默认值不适用于您,它也很容易调整。 – Neolisk 2014-04-15 18:50:05
相关问题
- 1. 如何将十进制小数转换为十六进制小数?
- 2. C++将八进制小数转换为十进制小数?
- 3. 转换为小数?原始十进制
- 4. 如何将十六进制NSData转换为十进制数组?
- 5. 十进制数字转换
- 6. 转换为十进制数
- 7. 十六进制和十进制转换
- 8. 转换十六进制到十进制
- 9. 十进制转换
- 10. 如何在PHP中将小数值转换为十进制值
- 11. 将八进制数转换为十进制和十六进制
- 12. 转换十进制值小时和分钟,并以小时
- 13. 如何转换OCaml中十六进制,十进制,十进制和二进制数之间的数字?
- 14. 如何将十六进制字符串转换为十进制?
- 15. 如何将14位十六进制转换为十进制
- 16. 如何在bash中将十进制转换为十六进制?
- 17. 如何十六进制转换为十六进制
- 18. 如何负十六进制转换为十进制
- 19. 如何将负十进制转换为十六进制?
- 20. 如何在Python中将十六进制转换为十进制?
- 21. 将十进制转换为十六进制和十六进制
- 22. 十六进制转换为十进制电压转换
- 23. 十进制转换为十六进制的转换(Java)的
- 24. 将非十进制数转换为十进制数
- 25. 如何在VIM中将十进制数转换为十六进制数?
- 26. 在Scala中将十进制小数转换成二进制小数
- 27. 如何将数字(十进制)转换为二进制(二进制)数字和从二进制到十进制?
- 28. 如何将int数从十进制转换为二进制
- 29. 如何将二进制转换为十进制与长整数?
- 30. 转换32位二进制数转换为十进制
我认为Convert.ToDecimal()是字符串表示,不用于将可空的十进制转换为十进制。请参阅此处:https://msdn.microsoft.com/en-us/library/9k6z9cdw(v=vs.110).aspx – 2016-02-16 16:17:08