给出:
scala> val s =99999999999999947.89
s: Double = 9.9999999999999952E16
scala> f"$s%.2f"
res15: String = 99999999999999952.00
我希望输出应为= 99999999999999947.89
如何避免四舍五入和科学计数法。
答案 0 :(得分:0)
Double
数据类型不支持您追求的精度。最接近的数字99999999999999952952是最接近于99999999999999947947.89的数字,可以表示为Double
。
对于很大的数字,不仅如此。双精度值很快就会开始漂移。例如,您可以在(0.2 + 0.2 + 0.2) != 0.6
改为使用BigDecimal
。