如何避免在scala中四舍五入和科学计数法?

时间:2020-10-14 12:47:31

标签: scala

给出:

scala> val s =99999999999999947.89
s: Double = 9.9999999999999952E16
scala> f"$s%.2f"
res15: String = 99999999999999952.00

我希望输出应为= 99999999999999947.89

如何避免四舍五入和科学计数法。

1 个答案:

答案 0 :(得分:0)

Double数据类型不支持您追求的精度。最接近的数字99999999999999952952是最接近于99999999999999947947.89的数字,可以表示为Double

对于很大的数字,不仅如此。双精度值很快就会开始漂移。例如,您可以在(0.2 + 0.2 + 0.2) != 0.6

中看到此内容

改为使用BigDecimal