同Java一样,两个相等的浮点数比较并不一定能得到相等的结果,但是可以使用精度的方式实现两个浮点数是否相等,eg.
def ~=(x: Double, y: Double, precision: Double) = {
if ((x - y).abs < precision) true else false
}
def main(args: Array[String]): Unit = {
val a = 0.3
val b = 0.1 + 0.2
println(b)
println(~=(a, b, 0.000001))
}
输出如下:
0.30000000000000004
true