【问题标题】:System.Convert.ToSingle(value) always throws FormatExceptionSystem.Convert.ToSingle(value) 总是抛出 FormatException
【发布时间】:2013-04-01 21:11:41
【问题描述】:

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

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

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

【问题讨论】:

标签: c# formatexception


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      public static float ToSingle(
          Object value,
          IFormatProvider provider
      )
      

      【讨论】:

        猜你喜欢
        • 2013-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多