2013-05-20 102 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

相關問題