将字符串转换为没有指数形式的双精度值

Are*_*zki 1 java

我想将字符串转换为双精度并保持原样,例如我有:

719379705 而不是这个 7.19379705E8

  • 是 double 类型,能够按原样显示 719379705 而不是指数形式。

我使用这种方法进行转换:

private double toDouble(String valeur) {
    if (valeur != null) {
        return Double.parseDouble(valeur);
    }
    return Double.NaN;
}
Run Code Online (Sandbox Code Playgroud)

谢谢

小智 5

返回的值是一个有效的双精度值,E表示指数。只要它是有效的 double 值,您就不必担心 double 中返回的内容。

如果您需要格式化的双精度值,而不是用于计算,我建议您最好坚持使用String.

即使在那之后,如果您只是不喜欢具有指数的双精度值,您也可以使用 BigDecimal。

return BigDecimal.valueOf(valeur);
Run Code Online (Sandbox Code Playgroud)

我希望这是有道理的。

  • **请注意:** 虽然我相信“BigDecimal”是数字表示的正确方式,但它在速度方面有其自身的限制。 (3认同)
  • @Arezki,您正在寻找的精度超出了“双倍”容量。 (2认同)
  • @VishwaRatna Double 对于 719379705 有足够的精度 (2认同)