Я хочу переключиться с Java на язык сценариев для модулей на основе математики в моем приложении.Это связано с удобочитаемостью и функциональными ограничениями математической 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 для максимальной читабельности (по умолчанию используются десятичные дроби)?