У меня естьРасчеты без потери точности
BigDecimal a = new BigDecimal(7);
BigDecimal b = new BigDecimal(13);
BigDecimal c = new BigDecimal(26);
System.out.print((a.divide(b)).multiply(c));
этот код генерирует исключение:
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
Это означает, что мне нужно установить RoundingMode
.
Но мне нужно получить результат только без потери точности.
Как я могу это достичь?
Похоже, вы хотите работать с фракциями, а не с десятичными знаками. Вы можете осмотреть библиотеку с классом фракций или написать свой собственный. –
Проверьте это: http://commons.apache.org/proper/commons-math/userguide/fraction.html Здесь также обсуждается: http://stackoverflow.com/questions/474535/best-way- to-Represent-a-fraction-in-java – mohammedkhan
@ Давид Уоллес благодарит вас - вы правы – gstackoverflow