消息关闭
    暂无新消息!

scala使用double类型计算出错

问题作者 : Levet2017-06-20发布
object aaa {
  private class Cauculate {
    def add(a: Double, b: Double): Double = {
      return a+b;
    }
  }
  def main(args: Array[String]) {
    var a: Double = 1.2;
    var b: Double = 1.4;
    println((new Cauculate()).add(a, b)); 
  }
}
本人刚开自始学Scala,代码如上,打印结果是:2.5999999999999996。我想知道在Scala中有没有什么方法精确计算double类型的数值,类似于Java的BigDecimal计算小数。

1个回答

︿ 1

scala里面也有BigDecimal,你可以这样:

BigDecimal(a + b).setScale(2, BigDecimal.RoundingMode.HALF_UP).toDouble