【问题标题】:Convert.ToSingle(value, new CultureInfo("fr")) method gives 'Exception' for french culture but its working for German culutreConvert.ToSingle(value, new CultureInfo("fr")) 方法为法国文化提供“例外”,但它适用于德国文化
【发布时间】:2015-03-12 17:29:20
【问题描述】:

我正在使用 Convert.tosingle() 方法将值转换为浮点数。 这种方法适用于“德国”和“西班牙”文化,但它给了我波兰和法国文化的“输入字符串格式不正确”的异常。如何解决。 对于法语和波兰语,我想将值显示为“0,85”

下面是代码

string value = "0.85";
 float floatValue = Convert.ToSingle(value, new CultureInfo("de"));
 //Working fine
 float floatValue1 = Convert.ToSingle(value, new CultureInfo("es"));
 //Working fine


 float floatValue2 = Convert.ToSingle(value, new CultureInfo("fr"));  //      Giving Exception for French culture
float floatValue3 = Convert.ToSingle(value, new CultureInfo("pl"));
//Exception for Polish culture

谢谢, 帕拉维

【问题讨论】:

    标签: c#


    【解决方案1】:

    这是因为在波兰(很可能是法语)文化中,,(逗号)用作小数分隔符,而不是点。

    因此,您的价值必须是 0,85 才能使其适用于这些文化。

    【讨论】:

      【解决方案2】:

      这是因为法语没有千位分隔符,而德语有点作为千位分隔符。

          float value = 1234.56f;
          Console.WriteLine(value.ToString("#,##0.##", CultureInfo.GetCultureInfo("fr")));
          Console.WriteLine(value.ToString("#,##0.##", CultureInfo.GetCultureInfo("de")));
      

      结果:

      1 234,56
      1.234,56
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-22
        相关资源
        最近更新 更多