Re[8]: использование round
От: rg45 СССР  
Дата: 16.02.18 08:59
Оценка:
Здравствуйте, Marty, Вы писали:

M>>
M>>double d = 5.5;
M>>int i = (int)(d+0.5);
M>>


TB>>Ну если так, то что будет для отрицательных чисел?


M>Будет отброшена дробная часть, не?


Тут тебе придется с ним согласиться — твой вариант для отрицательных чисел будет работать не так как это ожидается от арифметического округления. Например, если мы захотм округлить -2.1, то получим: -2.1 -> -1.6 -> -1. Чтобы работало как надо, нужно слегка допилить:

int i = (int)(d < 0 ? d - 0.5 : d + 0.5);
--
Отредактировано 16.02.2018 8:59 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.