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