0

我有几个strings需要转换为float. 当我尝试这样做时,使用System.Convert.ToSingle(MyString),我总是得到一个FormatException.

我什至尝试创建类似 , 的字符串"12.123",以确保数字没问题,但我又遇到了异常。我的问题是,那么正确的格式是什么?字符串中的数字应该是什么格式?

我将转换的许多字符串之一的示例:50.105128

4

3 回答 3

3

这可能取决于您系统的文化,可能设置为使用 a,作为分隔符。将格式设置为InvariantCulture将使用 a.作为分隔符。

Convert.ToSingle("12.123", CultureInfo.InvariantCulture)
于 2013-04-01T13:09:28.117 回答
1

这取决于文化,但您可以通过这种方式使用不变量:

Convert.ToSingle("0", System.Globalization.CultureInfo.InvariantCulture);
于 2013-04-01T13:09:32.350 回答
0

Convert.ToSingle 对区域性敏感。在您机器上安装的文化中,小数分隔符可能与逗号不同,数字可能看起来像 50,105128

改用这个重载,它允许指定文化:

public static float ToSingle(
    Object value,
    IFormatProvider provider
)
于 2013-04-01T13:09:15.993 回答