Ява округляет 0,05 за деньги - PullRequest
3 голосов
/ 26 июля 2011

У меня 7.125 (double), нужно сделать 7.15. Что может быть проще всего?

Найдены округления, но я получаю 7,13, пожалуйста, помогите.

спасибо

Ответы [ 3 ]

13 голосов
/ 26 июля 2011

Самый простой способ - умножить на 20.0, округлить до целых чисел и снова разделить на 20.0. Подумайте об этом так: 1.0 / 20.0 = 0.05 ... Вот почему это будет работать.

Обратите внимание, что "округление" - это не то же самое, что "настил" (или приведение к int). Вы должны использовать java.lang.Math.round() для double и float типов или java.math.BigDecimal.round(MathContext) для BigDecimal типов

Возможно, вам лучше использовать BigDecimal для этого

3 голосов
/ 31 марта 2012

Простой способ округления до ближайшего .05 следующий:

int ans = java.lang.Math.round((7.125 / 0.5)) * 0.5

Это работает с любыми приращениями, которые вы хотели бы округлить. Просто измените 0.5 в уравнении.

0 голосов
/ 26 июля 2011

Пол значения затем добавить 0,15?

...