2013-04-01 98 views
0

我有幾個strings,我需要轉換爲float。當我嘗試這樣做時,使用System.Convert.ToSingle(MyString),我總是得到FormatExceptionSystem.Convert.ToSingle(value)總是拋出FormatException

我嘗試過甚至創建像"12.123"這樣的字符串,以確保數字沒問題,但我又得到了異常。我的問題是,那麼正確的格式是什麼?字符串中的數字應該是什麼格式?

許多字符串範例之一,我會轉換:50.105128

+0

工作正常,我。請添加一個[簡短的,自包含的,正確的示例](http://sscce.org/),重現問題。此外,請包括例外消息,因爲它也可能包含有用的信息。 – cdhowie

回答

2

這可能是因爲現代您系統的文化可能被設置爲使用,作爲分隔符。將格式設置爲InvariantCulture將使用.作爲分隔符。

Convert.ToSingle("12.123", CultureInfo.InvariantCulture) 
0

Convert.ToSingle是文化敏感。在計算機上安裝的文化,小數點可能是從逗號不同,數量可能看起來像50,105128

使用此重載,它可讓指定文化:

public static float ToSingle(
    Object value, 
    IFormatProvider provider 
) 
1

這取決於文化,但你可以以這種方式使用不變:

Convert.ToSingle("0", System.Globalization.CultureInfo.InvariantCulture); 
相關問題