使用NumberFormat将DoubleValue作为String转换为Number

时间:2017-09-22 08:57:33

标签: java parsing number-formatting

我正在玩NumberFormat,但不知怎的,我不能得到一个例如“12.34”成一个数字。

我的所作所为:

NumberFormat nf = NumberFormat.getInstance();
try {
    return nf.parse(inputString);
} catch (ParseException e) {
    return null;
}

当我给它“34.45”时,3445出来。

2 个答案:

答案 0 :(得分:1)

NumberFormat.getInstance();

将为运行该程序的JVM的当前默认FORMAT语言环境获取NumberFormat实例。

并非每种语言环境格式都使用点作为小数符号。根据你的名字猜测你可能将德语作为默认语言环境,因此逗号用作小数符号,而dot则被解释为一个简单的(千)分隔符,用于使数字更易于阅读。

要获取忽略当前默认语言环境的NumberFormat实例,您可以使用:

NumberFormat.getInstance(Locale.ROOT);

答案 1 :(得分:0)

尝试使用逗号而不是点。这取决于您使用的系统区域设置。十进制的某个地方用点写,有些地方用逗号写。
并检查here如何使用特定区域设置将字符串转换为double。