Подтвердить что ты не робот

Как объединить float до ближайшего int в С#?

В С#, как мне объединить float с ближайшим int?

Я вижу Math.Ceiling и Math.Round, но они возвращают десятичное число. Использовать ли я один из них, а затем применить к Int?

4b9b3361

Ответ 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).