gpt4 book ai didi

Java DecimalFormat 将不正确的十进制数解析为整数

转载 作者:行者123 更新时间:2023-11-30 12:01:57 28 4
gpt4 key购买 nike

收到所有的问候。

我需要验证一个文本对应于一个数字。项目区域设置为 es_CO。我现在遇到的问题是,带有用作小数点分隔符的句点的文本被解析为整数,而这应该是一个错误,因为在上述位置,小数点分隔符是一个逗号。

例如:

  • 区域设置:es_CO
  • 模式:###.###,##
  • 文本:1.48
  • 数字结果:148.0

源代码:

Locale defaultLocale = new Locale("es", "CO");
NumberFormat numberFormat = NumberFormat.getNumberInstance(defaultLocale);
DecimalFormat decimalFormat = (DecimalFormat) numberFormat;
decimalFormat.applyLocalizedPattern("###.###,##");
Number number = decimalFormat.parse("1.48"); // Here I would expect an exception to be generated.

感谢您能给我的任何帮助。

最佳答案

这似乎是 DecimalFormat 中的错误。解决它的一种方法是使用 Scanner :

Locale defaultLocale = new Locale("es", "CO");
Scanner scanner = new Scanner("1.48");
scanner.useLocale(defaultLocale);
Number number = scanner.nextDouble();

关于Java DecimalFormat 将不正确的十进制数解析为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59092455/

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