Java中Javascript引擎之间的差异

时间:2017-12-01 20:58:58

标签: javascript java

所以目前我有一个Java爬虫需要使用Javascript引擎计算一个值。我尝试了两种不同的引擎,一种是 javax.script.ScriptEngine ,另一种是 com.eclipsesource.v8.V8 引擎。不知何故,他们有不同的处理精度的方法:

l = 1.920337417298865e+77
var n = new Number(l.toPrecision(15));

第一个引擎给我n = 1.92033741729887e + 77(向上),第二个给我1.92033741729886e + 77(向下舍入)。第二个值是我预期的值,但使用 com.eclipsesource.v8.V8 很麻烦,因为我无法创建两个JVM来在Windows中使用V8引擎({{3} })。使用 javax.script.ScriptEngine 来获得相同值的好方法是什么?

1 个答案:

答案 0 :(得分:0)

没关系,通过子串进行简化只是很容易:

var n = l.toPrecision(16);

n = (n.toString().substring(0, 16) + n.toString().substring(17, n.toString().length))