Сообщение Re[8]: использование round от 16.02.2018 8:59
Изменено 16.02.2018 8:59 rg45
Re[8]: использование round
Здравствуйте, Marty, Вы писали:
M>>
TB>>Ну если так, то что будет для отрицательных чисел?
M>Будет отброшена дробная часть, не?
Тут тебе придется с ним согласиться — твой вариант для отрицательных чисел будет работать не так как это ожидается от арифметического округления. Например, если мы захотм округлить -2.1, то получим: -2.1 -> -1.6 -> 1. Чтобы работало как надо, нужно слегка допилить:
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);
Re[8]: использование round
Здравствуйте, Marty, Вы писали:
M>>
TB>>Ну если так, то что будет для отрицательных чисел?
M>Будет отброшена дробная часть, не?
Тут тебе придется с ним согласиться — твой вариант для отрицательных чисел будет работать не так как это ожидается от арифметического округления. Например, если мы захотм округлить -2.1, то получим: -2.1 -> -1.6 -> -1. Чтобы работало как надо, нужно слегка допилить:
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);