【发布时间】:2012-06-22 22:36:57
【问题描述】:
使用标准 Java Double 类来解析带尾数的浮点数似乎省略了指数中的 + 号。
例如:
Double.parseDouble("1258124354E-28") returns 1.258124354E-19, but
Double.parseDouble("1243544322E+24") returns 1.243544322E33 (not E+33)
有什么方法可以使用 Double 获取 + 号,无需字符串后处理?
BigDecimal 类做得更好,例如
new BigDecimal("1243544322E+24").toString() does return 1.243544322E+33
但它通常比Double 慢,这显示在密集处理中。
【问题讨论】:
-
不要用 toString 打印,使用 NumberFormat 的实例。
标签: java floating-point double bigdecimal mantissa