Java NumberFormat 忽略美国语言环境中的逗号?

标签 java localization locale number-formatting

我不明白 NumberFormat 中的某些内容,在美国语言环境中,它假设将逗号 (",") 视为组分隔符 - 数千。

为什么它会忽略此语言环境不正确位置的逗号?

NumberFormat format = DecimalFormat.getInstance(Locale.US); 
System.out.println(format.parse("5,500").longValue()); //5500
System.out.println(format.parse("550,0").longValue()); //5500
System.out.println(format.parse("5500,").longValue()); //5500

关于如何根据语言环境将 String 解析为 Long 的任何其他想法(假设输入“,” 在不正确的地方应该失败)?

最佳答案

正如 javadev 提到的,parse 方法似乎忽略了千位分隔符。我想如果你想要严格解析,你将不得不自己实现一个解析方法(使用 NumberFormat/DecimalFormat 的信息)。

关于Java NumberFormat 忽略美国语言环境中的逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15809225/

相关文章:

java - 为什么 hibernate 在第一条记录中创建 50000000000000001?

java - 在 Java 中使用 gremlin 遍历图形时如何收集属性值?

python - 多语言 flask 应用

java - 如何将 LocalDate 格式化为用户位置的标准格式?

c++ - 二进制模式下的 std::ifstream 和 C++ 中的区域设置

java - 根据本月创建一个目录并将dirs移动到其中

javascript - 如何本地化 pdf.js 工具栏?

使用 ICU4j 的 Java 僧伽罗语言环境日期格式不起作用

iOS 6.1.3 Mobile Safari/UIWebView 发送错误的区域设置区域代码

java - Thrift 中的 session 管理