Java执行JS,返回结果有问题怎么办?

ScriptEngineManager manager = new ScriptEngineManager();

ScriptEngine engine = manager.getEngineByName("js");

engine.eval("function getResult(){return parseInt('20')}");

Invocable inv = (Invocable) engine;

Object result = inv.invokeFunction("getResult", "");

System.out.println(result);

其中js返回的是parseInt('20'),应该返回的是整型20,但实际上result的值是20.0,是一个浮点型数据,请问怎么解决这个问题?或者有没有第三方的jar可以解决这个问题?

PS:在浏览器中执行上面js方法,返回是正常的,Java中执行这段代码返回有问题


回答:

js 的数字都是 64位双精度浮点数,没有整数
浏览器里看不到.0只是没显示并不是没有
需要取整数就 (Double)result.intValue() 出整数吧

以上是 Java执行JS,返回结果有问题怎么办? 的全部内容, 来源链接: utcz.com/p/944446.html

回到顶部