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中执行这段代码返回有问题

阅读 1.4k
1 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题