【问题标题】:string to float conversion - decimal separator字符串到浮点数的转换 - 小数点分隔符
【发布时间】:2010-06-17 07:12:39
【问题描述】:

以下代码有问题:

string latString = "50.09445";
float lat = Convert.ToSingle(latString);

第二个命令引发 FormatException 异常。我知道问题是我正在使用的文化设置(cs-CZ)使用逗号作为小数分隔符,而这个字符串包含小数点。

是否有一些简单的方法可以“忽略”文化设置并始终使用小数点进行转换?还是我应该先检查字符串并用小数点替换逗号来避免问题?

【问题讨论】:

    标签: c#


    【解决方案1】:

    使用 CultureInfo.InvariantCulture

    float lat = Convert.ToSingle("50.09445", CultureInfo.InvariantCulture);
    

    【讨论】:

      【解决方案2】:

      尝试使用Convert.ToSingle(string, IFormatProvider) overload,并将其传递给不变的文化(或您想要使用的任何CultureInfo):

      float lat = Convert.ToSingle(latString, CultureInfo.InvariantCulture);
      

      【讨论】:

        【解决方案3】:
        string latString = "50.09445";
        float lat = float.Parse(latString, CultureInfo.InvariantCulture);
        

        【讨论】:

          【解决方案4】:
          Single.Parse(latString, System.Globalization.CultureInfo.InvariantCulture);
          

          【讨论】:

            猜你喜欢
            • 2019-06-03
            • 1970-01-01
            • 2013-10-03
            • 2020-09-02
            • 1970-01-01
            • 2011-11-25
            • 1970-01-01
            • 2019-06-22
            • 2016-06-14
            相关资源
            最近更新 更多