Я использую java nashorn для оценки javascript, меня смущает некоторое поведение, связанное с числами.
ScriptEngine nashorn = new ScriptEngineManager().getEngineByName("nashorn");
Object result = nashorn.eval("3 + 3");
это дает 6
с типом java.lang.Integer
,
, но
ScriptEngine nashorn = new ScriptEngineManager().getEngineByName("nashorn");
nashorn.put(three, 3);
Object result = nashorn.eval("three + 3");
Это дает 6.0
с типом java.lang.Double
.
, почему это происходит?
Я ожидаю, с nashorn.put(three, 3)
должно дать 6
, nashorn.put(three, 3.0)
должно дать 6.0
, возможно ли это? любая идея?