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

时间:2016-05-21 06:58:53

标签: javascript java math decimal

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); 

它返回的是Double。我想要BigDecimal

之类的东西

或者我必须自己实现这个吗?

1 个答案:

答案 0 :(得分:1)

不,你不必自己实现。

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

Groovy默认为BigDecimal,因此这似乎更合适。