双打,逗号和点
问题内容:
我正在制作一个Android
Java程序,该程序从用户处获取双倍值。如果我在计算机上运行该程序,则由于我的计算机的语言环境为EN_UK,因此运行良好。但是,当我在具有FI_FI语言环境的手机上运行它时,它将无法工作。我知道原因:在英国,人们使用点作为小数点分隔符,但在芬兰,小数点分隔符是逗号。
DecimalFormat df = new DecimalFormat("#.#");
Double returnValue = Double.valueOf(df.format(doubleNumber));
当我使用逗号时,它说java.lang.NumberFormatException: Invalid double: "1234,5"
。
如何使它们与逗号和点都兼容?
问题答案:
使用DecimalFormat的其他构造函数之一:
new DecimalFormat("#.#", new DecimalFormatSymbols(Locale.US))
然后尝试使用两个分隔符对其进行解析。