【发布时间】:2012-05-22 00:47:23
【问题描述】:
我正在制作一个 Android Java 程序,它从用户那里获取双精度值。如果我在计算机上运行该程序,由于我计算机的语言环境 EN_UK,它运行良好。但是当我用 FI_FI 语言环境在我的手机上运行它时,它就不起作用了。我知道原因:在英国,人们使用点作为小数分隔符,但在芬兰,小数分隔符是逗号。
DecimalFormat df = new DecimalFormat("#.#");
Double returnValue = Double.valueOf(df.format(doubleNumber));
当我使用逗号时,它会显示java.lang.NumberFormatException: Invalid double: "1234,5"。
我怎样才能让它同时使用它们,逗号和点?
【问题讨论】:
-
你为什么不直接解析字符串并在必要时用点替换逗号?
-
一个不太聪明的解决方案是先用点替换所有逗号,然后将数字视为用点格式化。