Есть выражение
1/30
Как округлить результат до целого числа? Например чтобы получилось число 1
Есть выражение
1/30
Как округлить результат до целого числа? Например чтобы получилось число 1
Например,
Math.Ceiling(1.0/30.0)
Не забывайте, что вы используете целочисленное деление. Результат деления 1/30 — уже 0. Поэтому перейдите к делению дробных чисел (1.0/30.0 = 0.03333333...), а уж это число округляйте вверх.
Вариант с целочисленным делением выглядит так:
(a*b+b*b-1)/(b*b)
Найдём вариант с целочисленным делением.
Нетрудно проверить, что ceil(a/b) = - floor(-a/b).
Т.е. если a/b - это округление вниз, то -(-a/b) это округление вверх.
Если при целочисленном делении дробная часть просто отбрасывается (что соответствует операции trunc), то в случае ab>0 округление вверх - это -(-a/b),
а в случае ab<0 - это a/b.
С точки зрения постановки задачи, то да, вариант
Math.Ceiling(1.0/30.0);
будет верным.
Но вот с точки зрения логики лучше бы все-таки использовать
(int)Math.Round(1.0/30.0, 0);
Округление происходит в ближайшую сторону
b. – VladD Dec 29 '15 at 20:25