Вычислите выражение в Java с точностью до 19 цифр.JAVA

Программисты JAVA общаются здесь
Гость
Вычислите выражение в Java с точностью до 19 цифр.

Сообщение Гость »


Например, у меня есть строковое выражение
formula="333333333333333333+222222222222222222"
Я пытаюсь вычислить значение выражения с точностью до 18 цифр.
чтобы вычислить I я использую scriptEngine в Java, поскольку выражение может быть любым выражением, однако я получаю результат как 55555555555555552
Вот мой код

Код: Выделить всё

ScriptEngineManager scriptEngineManager= new ScriptEngineManager();
ScriptEngine scriptEngine=scriptEngineManager.getEngineByName("JavaScript");
Object result=scriptEngine.eval(formula);

In object I get exponential to which I remove by converting to bigDecimal string. However the calculation is not accurate if I use scriptEngineManager.
I also tried converting the numbers to big decimal by replacing all the numbers with 'new java.math.BigDecimal(number)' but still I get inaccurate value.
Do I manually have to create a parser in which I add bigdecimals using their functions bigdecimal.add(bigdecimal) , however in that case I have to take care of BODMAS rule as well as it's an expression that I have to take care of.
Please help me how to calculate a string expression which is accurate upto 18 digits.
Thanks in advance


Источник: https://stackoverflow.com/questions/781 ... -19-digits

Вернуться в «JAVA»