PNS*_*PNS 1 java floating-point double mantissa bigdecimal
使用标准Java Double类来解析带有尾数的浮点数似乎省略了指数的+符号.
例如:
Double.parseDouble("1258124354E-28") returns 1.258124354E-19, but
Double.parseDouble("1243544322E+24") returns 1.243544322E33 (not E+33)
Run Code Online (Sandbox Code Playgroud)
有没有办法使用Double获得+符号,没有字符串后处理?
该BigDecimal班没有一个更好的工作,例如,
new BigDecimal("1243544322E+24").toString() does return 1.243544322E+33
Run Code Online (Sandbox Code Playgroud)
但它通常比Double在密集处理中显示的要慢.
您需要区分存储在a中的值double及其字符串表示形式.
A double根本不存储文本表示.1.243544322E33 是 1.243544322E + 33.它们的价值相同.
现在,如果你想研究如何将值格式化double回a String,那是另一回事 - 但你正在进行的解析很好.你没有丢失任何信息.