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
。
或者我必须自己实现这个吗?
答案 0 :(得分:1)
不,你不必自己实现。
只需要选择其他脚本语言,因为JavaScript会在double
中完成所有数学运算。
Groovy默认为BigDecimal
,因此这似乎更合适。