I want to switch from Java to a scripting language for the Math based modules in my app. This is due to the readability, and functional limitations of mathy Java.
For e.g, in Java I have this:
BigDecimal x = new BigDecimal("1.1");
BigDecimal y = new BigDecimal("1.1");
BigDecimal z = x.multiply(y.exp(new BigDecimal("2"));
As you can see, without BigDecimal operator overloading, simple formulas get complicated real quick.
With doubles, this looks fine, but I need the precision.
I was hoping in Scala I could do this:
var x = 1.1;
var y = 0.1;
print(x + y);
And by default I would get decimal-like behaviour, alas Scala doesn't use decimal calculation by default.
Then I do this in Scala:
var x = BigDecimal(1.1);
var y = BigDecimal(0.1);
println(x + y);
And I still get an imprecise result.
Is there something I am not doing right in Scala?
Maybe I should use Groovy to maximise readability (it uses decimals by default)?
I don't know Scala, but in Java new BigDecimal(1.1)
initializes the BigDecimal
with a double
value and thus it is not exactly equal to 1.1. In Java you have to use new BigDecimal("1.1")
instead. Maybe that will help in Scala as well.