Я вижу Math.Ceiling и Math.Round, но они возвращают десятичное число. Использовать ли я один из них, а затем применить к Int?
Ответ 1
Если вы хотите округлить до ближайшего int:
int rounded = (int)Math.Round(precise, 0);
Вы также можете использовать:
int rounded = Convert.ToInt32(precise);
который будет использовать Math.Round(x, 0); для округления и броска для вас. Он выглядит более аккуратным, но немного менее ясным. ИМО.
Если вы хотите округлить вверх:
int roundedUp = (int)Math.Ceiling(precise);
Ответ 2
Сверху моей головы:
float fl = 0.678;
int rounded_f = (int)(fl+0.5f);
Ответ 3
(int) Math.Round(myNumber, 0)
Ответ 4
Самый простой способ - просто добавить к нему 0.5f, а затем применить его к int.
Ответ 5
Использую ли я один из них, а затем прикладываю к Int?
Да. Это не проблема. Десятичные числа и двойники могут точно представлять целые числа, поэтому ошибки представления не будет. (Вы не получите случай, например, где Round возвращает 4.999... вместо 5.)
Ответ 6
Вы можете применить к int, если вы уверены, что он находится в диапазоне для int (Int32.MinValue - Int32.MaxValue).