奇怪的解析双重行为

时间:2010-05-17 20:14:30

标签: c#

我有这行代码:

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返回一个字符串。

2 个答案:

答案 0 :(得分:5)

你使用什么小数分隔符,我的猜测是','。试试

Double.Parse(UtilsStatic.getEuroValue(), 
             System.Globalization.CultureInfo.InvariantCulture) 

将使用'。'解析数字。作为小数点分隔符。

答案 1 :(得分:-2)

您似乎在处理资金问题,因此应使用decimal类型代替double