繁体   English   中英

本地fr-CA语言环境和问题

[英]local fr-CA locale and issue with double

我有一个Web应用程序,用户可以在其中更改语言环境,但是当用户将语言环境更改为法语加拿大“ fr-CA”时,两次转换将引发无效的格式字符串错误。 发生的是,我从数据库中获取了一些数据,其中双精度值以字符串形式出现,例如“ 232.33”。 问题是无法使用Parse或其任何变体将此字符串转换为double值...我想知道有人可以对如何解析此double值有所了解,以便fr-CA语言环境允许我获得double d = 232.33

谢谢

您可能已经注意到, ParseToString方法是特定于区域性的。

如果您一直希望这些格式是不变的(格式232.33而不是232,33)

您可以使用Parse的重载来指定数字格式

decimal myDecimal = decimal.Parse("232.33", CultureInfo.InvariantCulture);

将小数转换为字符串也是如此

decimal myDecimal = 232.33m;

string myString = myDecimal.ToString(CultureInfo.InvariantCulture); // "232.33" regardless of current threads culture

查看资源:

http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.invariantculture.aspx

主题略有偏离,但是您应该将小数作为正确的数字类型而不是字符串存储在数据库中。 这样,您可以根据需要在查询中使用聚合和数学运算,而且可以获得更好的存储优化,并且不必解析字符串。

暂无
暂无

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

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