使用标准的 Java Double
类解析带尾数的 float 似乎省略了指数中的 + 号。
例如:
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
慢,这表明在密集处理中。
最佳答案
您需要区分存储在 double
中的值 及其字符串表示形式。
double
根本不存储文本表示。 1.243544322E33 是 1.243544322E+33。它们具有相同的值。
现在,如果您想研究如何将一个 double
值格式化回一个 String
,那是另一回事了——但是 < em>parsing 你正在做的很好。您不会丢失任何信息。
关于java - 在 Java 中解析带尾数的 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11165025/