Scala浮点数比较

同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

你可能感兴趣的:(Scala浮点数比较)