繁体   English   中英

Convert.ToSingle(value,new CultureInfo(“ fr”))方法为法国文化提供了“例外”,但对德国文化很有用

[英]Convert.ToSingle(value, new CultureInfo(“fr”)) method gives 'Exception' for french culture but its working for German culutre

我正在使用Convert.tosingle()方法将值转换为float。 这种方法在“德国”和“西班牙”文化下效果很好,但在波兰和法国文化中却给我“输入字符串格式不正确”的例外。 如何解决。 对于法语和波兰语,我想将值显示为“ 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

谢谢,帕拉维

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

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

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

    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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM