System.Convert.ToSingle(value)始终抛出FormatException

时间:2013-04-01 13:06:57

标签: c# formatexception

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

我甚至尝试创建像"12.123"这样的字符串,以确保数字没问题,但我又得到了例外。我的问题是,那么正确的格式是什么?字符串中的数字应采用何种格式?

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

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

Convert.ToSingle("0", System.Globalization.CultureInfo.InvariantCulture);

答案 2 :(得分:0)

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

使用此重载,允许指定culture:

public static float ToSingle(
    Object value,
    IFormatProvider provider
)