使用 NumberFormat 将 DoubleValue 作为字符串转换为数字

Convert a DoubleValue as String to Number using NumberFormat

我正在玩 NumberFormat,但不知何故我无法获得例如“12.34”变成一个数字。

我的工作:

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

当我给它“34.45”时,结果是 3445。

尝试使用逗号而不是点。这取决于您使用的系统区域设置。小数有的地方用点写,有的地方用逗号写。
并检查 here 如何使用特定语言环境将字符串转换为双精度。

NumberFormat.getInstance();

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

并非所有区域设置格式都使用点作为小数点。根据您的名字猜测,您可能将德语作为默认语言环境,因此逗号用作小数点,而点被解释为简单的(千位)分隔符,用于使数字更易于阅读。

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

NumberFormat.getInstance(Locale.ROOT);