我在解析/验证文化敏感的数字格式时遇到了 C#(和 Java)的问题。似乎在数字分组方面,分隔符可以放在 .NET 中的任何位置。有没有办法严格遵守数字分组的使用?例如,请参阅以下内容:
Decimal.Parse("9,0"); /// Returns 90, which is wrong
Decimal.Parse("90,00"); /// Returns 9000, which is wrong
Decimal.Parse("9,000"); /// Returns 9000, which is right
更复杂的是,文化中每组的位数不同。
有什么建议么?
编辑:建议我将 CultureInfo 添加到 Parse() 中,但这仍然无法正常工作。例如:
CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US"); /// Murican English
Double.Parse("9,0", culture); /// Returns 90 when it should throw an exception
culture = CultureInfo.CreateSpecificCulture("pt-BR"); /// Brazillian Portuguese
Double.Parse("9.0", culture); /// Returns 90 when it should throw an exception