[英]strange parsing Double behaviour
我有这行代码:
return (this.pretWithoutDiscount / Double.Parse(UtilsStatic.getEuroValue())).ToString("N2") + "€";
在调试模式下,我已经测试过,其值为:
UtilsStatic.getEuroValue()=“ 4.1878”
this.pretWithoutDiscount = 111.0
谁能解释为什么:
Double.Parse(UtilsStatic.getEuroValue())= 41878.0
什么时候应该是4.1878
谢谢...
PS:UtilsStatic.getEuroValue返回一个字符串。
您使用的是十进制分隔符,我的猜测是“,”。 尝试
Double.Parse(UtilsStatic.getEuroValue(),
System.Globalization.CultureInfo.InvariantCulture)
它将使用“。”解析数字 作为小数点分隔符。
看来您正在处理金钱,因此应使用decimal
类型而不是double
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.