gpt4 book ai didi

C# 数字格式处理数字分组

转载 作者:太空宇宙 更新时间:2023-11-03 16:10:05 24 4
gpt4 key购买 nike

我在使用 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

最佳答案

您可以在 here 中找到有关解析的信息如链接示例中所示,使用 CultureInfo culture

例如

culture = CultureInfo.CreateSpecificCulture("en-US");
number = Double.Parse(value, culture);// 1,304.16 --> 1304.16

但是“en-US”无法解析“1 304,16”。 "fr-FR"可以 --> 你会得到 1304.16

关于C# 数字格式处理数字分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17812178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com