所以目前我有一个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 来获得相同值的好方法是什么?
答案 0 :(得分:0)
没关系,通过子串进行简化只是很容易:
var n = l.toPrecision(16);
n = (n.toString().substring(0, 16) + n.toString().substring(17, n.toString().length))