Scala 和 Java BigDecimal
2022-09-01 10:07:27
我想在我的应用中从 Java 切换到基于数学的模块的脚本语言。这是由于 mathy Java 的可读性和功能限制。
例如,在Java中,我有这个:
BigDecimal x = new BigDecimal("1.1");
BigDecimal y = new BigDecimal("1.1");
BigDecimal z = x.multiply(y.exp(new BigDecimal("2"));
如您所见,如果没有 BigDecimal 运算符重载,简单的公式很快就会变得非常复杂。
对于双打,这看起来很好,但我需要精度。
我希望在Scala中我能做到这一点:
var x = 1.1;
var y = 0.1;
print(x + y);
默认情况下,我会得到类似十进制的行为,唉,Scala默认情况下不使用十进制计算。
然后我在Scala中这样做:
var x = BigDecimal(1.1);
var y = BigDecimal(0.1);
println(x + y);
我仍然得到一个不精确的结果。
在Scala中,有没有什么我没有做对的事情?
也许我应该使用Groovy来最大化可读性(默认情况下它使用小数)?