使用 'ScriptEngine' 计算公式而不丢失任何精度

Use 'ScriptEngine' to calculate formula without losing any precision

ScriptEngine的计算能没有精度损失吗?我用它来计算 java 中的 +-*

 ScriptEngineManager sem = new ScriptEngineManager();
 ScriptEngine engine = sem.getEngineByExtension("js");
 String calFormula = "5.08*8.99+3.23*4.221";
 Object obj = engine.eval(calFormula); 

什么returns就是一个Double。我想要 BigDecimal.

这样的东西

还是必须自己实现?

不,您不必自己实施。

只需要选择另一种脚本语言,因为 JavaScript 在 double 中完成所有数学运算。

Groovy 默认为 BigDecimal,这样看起来更合适。