カルチャに依存する数値書式の解析/検証で、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