我想做这样的事情,但 C# 不接受:
public static void setPrice(Double? value)
{
if (value != null) {
this.TextBoxPrice.Text = Math.Round(value, 2).ToString();
} else {
this.TextBoxPrice.Text = "No Price";
}
}
那么这是否意味着使用可空类型 Double ?在这个用例中完全没用吗?那我能用什么呢?
更新:我犯了一个我真正想说的错误
public static void setPrice(Double? value)
所以我纠正了。
您当前没有使用可为 null 的类型 -Double
是不可为 null 的值类型,因此永远不能为 null。这就是你想要的:
public static void setPrice(Double? value)
{
if (value != null) {
this.TextBoxPrice.Text = Math.Round(value.Value, 2).ToString();
} else {
this.TextBoxPrice.Text = "No Price";
}
}
另一方面,你应该not正在使用double
来代表财务价值。作为一个不合适的binary浮点类型。使用decimal
(or decimal?
) 反而。
(注意Double?
相当于Nullable<Double>
.)
如果您有 Java 背景,您可能会期待Double
作为一个参考“包装”类型开始 - 它不是。在 C# 中double
只是一个别名System.Double
;他们是同一类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)