2013-05-20 65 views
11

我有一个问题。当我解析字符串“0.005”来浮动或加倍时,它在我的计算机上工作正常,但是当我将程序安装到我的客户端计算机时,它返回5.(我的计算机和我的客户端计算机都使用Windows 7 x64) 。这里是我的例子为什么float.parse返回错误的值?

public float getFloat() 
    { 
     float mn = float.Parse("0.005"); 
     double mn2 = Convert.ToDouble("0.005"); 
     return mn; 
    } 
+9

你们是否在你的机器中使用相同的文化? '.'不是每种文化中的小数点分隔符。 **编辑:**在PT-BR中,例如,0.005 ** IS ** ** 5. – Renan

+1

这是您有的一个有趣的瑕疵。 –

+4

是的,问题几乎肯定是您的客户的计算机设置为使用“。”。作为千位分隔符而不是小数点,正如@Renan所暗示的那样。 –

回答

16

这可能是系统文化设置的问题。试试这个:

float.Parse("0.005", CultureInfo.InvariantCulture); 
+0

打败我吧。这应该工作。 – tnw

+0

非常感谢! – Victor

相关问题