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