在Scala中,我正在尝试使用HALF_UP舍入模式将以下数字四舍五入到小数点后三位精度。
8409.3555
不幸的是,Scala返回8409.356,而Java返回8409.355。
Scala代码:
不幸的是,Scala返回8409.356,而Java返回8409.355。
Scala代码:
def round(d: Double): Double = {
BigDecimal.apply(d).setScale(3, RoundingMode.HALF_UP).doubleValue()
}
Java 代码:
private static Double round(Double d) {
BigDecimal bd = new BigDecimal(d);
bd = bd.setScale(3, RoundingMode.HALF_UP);
return bd.doubleValue();
}
有没有已知的问题?
8409.3555
并传递给round
函数的?这两次都是在 Scala 中吗?你尝试过从 Scala 调用 Java 的round
函数,反之亦然吗? - The Archetypal Paul