Re[4]: Округление double
От: SL  
Дата: 10.06.15 09:24
Оценка:
Здравствуйте, _DAle_, Вы писали:

_DA>Здравствуйте, SL, Вы писали:


SL>>результат например (2625.0 * 0.18)/100 был равен 4.73


_DA>У тебя округление изначально написано, в целом, правильно. Может можно поаккуратнее как-то, но основная проблема не в этом, а в том, что в round данные уже приходят с погрешностью. Надо выяснить, какова природа твоих чисел и что нужно с ними сделать.


Условно говоря у меня есть число 2625, от него мне нужно посчитать значение 0.18% и его округлить до 2 знаков.
Делаю так
double d =  (2625.0  *  0.18)/100;
double d1 = round(d, 2);


и вместо 4.725, в d получаю 4.7249999999999996, тут так то все понятно так устроен double, но ведь можно же это как то учесть.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.