我有几个strings
需要转换为float
. 当我尝试这样做时,使用System.Convert.ToSingle(MyString)
,我总是得到一个FormatException
.
我什至尝试创建类似 , 的字符串"12.123"
,以确保数字没问题,但我又遇到了异常。我的问题是,那么正确的格式是什么?字符串中的数字应该是什么格式?
我将转换的许多字符串之一的示例:50.105128
我有几个strings
需要转换为float
. 当我尝试这样做时,使用System.Convert.ToSingle(MyString)
,我总是得到一个FormatException
.
我什至尝试创建类似 , 的字符串"12.123"
,以确保数字没问题,但我又遇到了异常。我的问题是,那么正确的格式是什么?字符串中的数字应该是什么格式?
我将转换的许多字符串之一的示例:50.105128
这可能取决于您系统的文化,可能设置为使用 a,
作为分隔符。将格式设置为InvariantCulture
将使用 a.
作为分隔符。
Convert.ToSingle("12.123", CultureInfo.InvariantCulture)
这取决于文化,但您可以通过这种方式使用不变量:
Convert.ToSingle("0", System.Globalization.CultureInfo.InvariantCulture);
Convert.ToSingle 对区域性敏感。在您机器上安装的文化中,小数分隔符可能与逗号不同,数字可能看起来像 50,105128
改用这个重载,它允许指定文化:
public static float ToSingle(
Object value,
IFormatProvider provider
)