Java. Работа с вещественными числами. - Вопросы по Java
  • Чаты 4chT.com в телеграмм
    Наши группы в телеграмм

Вопрос Java. Работа с вещественными числами.

sfs

Capitan

sfs

Capitan
Регистрация
30 Май 2013
Сообщения
68
Репутация
0
Спасибо
0
Монет
0
Java. В классе определенно поле типа double, значение которого будет часто сравниваться (>,==,<). Кроме сравнений с этим значением буду совершать операции (+, -*, ) после которых ожидаемый результат может быть другим (например (5.5+2.5)/2 может быть равно не 4, а 3.9). Подскажите пожалуйста как лучше выйти из такой ситуации, единственно условие - нужно иметь поле в классе которое будет хранить вещественные числа. Идея такая, что бы при операции с числами всегда был ожидаемый результат ( если 4/2 будет равно 1.99991 то он стал 2, или если 5/2 будет равно 2.5111 то он стал 2.5.
 
Регистрация
18 Ноя 2013
Сообщения
75
Репутация
0
Спасибо
0
Монет
0
3.9 там точно не будет лежать, однако может быть число, близкое к 4.0 (хотя вряд ли в данном случае, так как представленные числа конечны). Это происходит из-за того, что числа сохраняются в двоичном представлении, которые не всегда конечны после преобразования из десятичных (теряется точность). Для подсчёта денег и т. д. используется более медленный decimal.
 
Сверху Снизу