【发布时间】:2020-07-28 07:00:50
【问题描述】:
我需要对 Big Numbers 进行一些精度计算,我一直在尝试使用 Scala BigDecimal,但我注意到精度损失。
举个例子:
2^63 == 9223372036854775808
2^64 == 18446744073709551616
但是当我这样做时
println(BigDecimal.decimal(scala.math.pow(2, 63)).toBigIntExact())
println(BigDecimal.decimal(scala.math.pow(2, 64)).toBigIntExact())
我明白了
9223372036854776000 != 9223372036854775808
18446744073709552000 != 18446744073709551616
不知道能不能得到准确的BigInt。
也许我必须采取其他方法。
谁能帮我解决这个问题?
【问题讨论】:
标签: scala math precision bigdecimal bigint