Ошибки с плавающей точкой в ​​матричных библиотеках Java Colt - PullRequest
0 голосов
/ 13 февраля 2009

Как избежать ошибок с плавающей запятой в финансовых вычислениях, выполняемых с матричными библиотеками Colt?

Ответы [ 3 ]

3 голосов
/ 13 февраля 2009
0 голосов
/ 13 февраля 2009

Для финансовых целей более распространено использование BigDecimal и связанных классов. float и double в любом случае очень подвержены ошибкам округления.

Вы можете посмотреть Apache Commons Math , если решите попробовать BigDecimal.

0 голосов
/ 13 февраля 2009

Один из распространенных методов - использовать целые числа и самостоятельно отслеживать десятичные дроби. Например, вы можете решить, что вся сумма вашей валюты будет представлена ​​с точностью до 3 десятичных знаков. Поэтому вместо того, чтобы писать:

double dollars = 10.05d;

Вы пишете

int dollars = 10050;

и когда вы хотите напечатать сумму:

System.out.println( dollars/100d );
...