首页 > Java > java教程 > 如何在 Java 中稳健地解析以逗号作为小数分隔符的双精度数?

如何在 Java 中稳健地解析以逗号作为小数分隔符的双精度数?

Susan Sarandon
发布: 2024-12-08 11:30:13
原创
450 人浏览过

How to Robustly Parse Doubles with Comma as Decimal Separator in Java?

用逗号作为小数分隔符解析 Double:综合解决方案

处理使用逗号 (,) 作为小数分隔符的数据时,使用 Double.valueOf() 将其解析为双精度数可能会导致 NumberFormatException。这是因为 Double.valueOf() 需要一个句点 (.) 作为小数点分隔符。

一种解决方案是使用 String.replaceAll() 将逗号替换为句点,如问题所示。然而,有一种更强大且能够感知语言环境的方法,使用 java.text.NumberFormat。

利用 NumberFormat 进行特定于语言环境的解析

NumberFormat 提供了解析和根据指定的区域设置格式化数字。要解析以逗号作为小数点分隔符的字符串,请使用以下步骤:

  1. 使用 NumberFormat.getInstance(Locale.FRANCE) 或 NumberFormat.getInstance(Locale.getDefault()) 创建 NumberFormat 实例支持多语言应用。
  2. 调用 format.parse(String) 将字符串解析为 Number object.
  3. 使用 number.doubleValue() 将 Number 对象转换为 double。

以下是演示此方法的代码:

NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);
Number number = format.parse("1,234");
double d = number.doubleValue();

System.out.println(d); // Prints 1.234
登录后复制

通过使用 NumberFormat ,您可以以特定于语言环境的方式解析以逗号作为小数分隔符的双精度值,即使在全球化应用程序中也能确保准确的结果。

以上是如何在 Java 中稳健地解析以逗号作为小数分隔符的双精度数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板