ScriptEngineManager eval (..) возвращает сокращенное значение при суммировании - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь использовать ScriptEngineManager для суммирования двух значений, и я получаю не то, что мне нужно.

Мне нужно суммировать System.currentTimeMillis () и некоторое число типа long.

ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
mathEvaluationEngine = scriptEngineManager.getEngineByName("JavaScript");
String.valueOf(mathEvaluationEngine.eval(System.currentTimeMillis()+"+"+200000L));

Например, если я пытаюсь оценить «1571316916817 + 200000L», я ожидаю получить что-то вроде «1571317116817», но вместо этого я получил «1.571317116817E12». Эта проблема только с большими числами, меньшие числа работают отлично. Я не хочу получать показатель степени

1 Ответ

0 голосов
/ 17 октября 2019

Я просто создаю новый объект BigDecimal из результата eval, он работает просто отлично.

...