有一组大于E-6小数的数字吗?
我想用数字E-7把它简单地转换成十进制,例如:8.839E-7
val c = BigDecimal("8.4805E-6")
println(c)
val a = BigDecimal("8.839E-7")
println(a)
第一次打印ln正确:0.000000084805
第二个没有转换:8.839E-7
有人能帮我吗?
您可以在BigDecimal文档中了解toString()
使用的特定格式化算法。
如果你想要没有任何科学符号的数字,请使用toPlainString()
:
println(a.toPlainString())
它转换正确,它只是以这种形式显示这个BigDecimal,因为BigDecimal.toString((方法是这样工作的,来自docs:
否则(即,如果小数位数为负数,或*调整后的指数小于{@code-6}(,则该数字将为*使用指数表示法转换为字符形式。
我建议使用DecimalFormat将BigDecimal格式化为字符串