Здравствуйте, 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);