Можно ли использовать Convert.ToInt32(double) и заставить его выбирать наименьшее значение?

Можно ли использовать Convert.ToInt32(double) и заставить его выбирать наименьшее значение?

Я прочитал примеры в msdn, он преобразует double в int, используя ближайшее значение, а это означает, что если у меня есть double, равный 2,9, он установит int в 3.

Можно ли использовать convert.toint32 и использовать 2?


person ng80092b    schedule 28.02.2015    source источник
comment
может попробуешь кастинг : (int)yournumber   -  person Khanh TO    schedule 28.02.2015


Ответы (2)


Используйте Math.Floor. См. эту ссылку: https://msdn.microsoft.com/en-us/library/system.math.floor(v=vs.110).aspx

РЕДАКТИРОВАТЬ: Math.Floor возвращает двойное значение, поэтому вам придется его разыграть, например, int y = (int)Math.Floor(3.934333), что вернет 3.

person sovemp    schedule 28.02.2015
comment
Я пробовал это раньше, но math.floor не работал именно потому, что он возвращает двойное значение, а мне нужно целое число. В чем смысл двойного пола? - person ng80092b; 28.02.2015
comment
Вы просто возвращаете math.floor к int. - person sovemp; 28.02.2015

Вы можете использовать просто приведение к int, вы можете проверить это:

double x = 2.9;
int y = (int) x;
Console.WriteLine (y); // 2
person Ruslan Mukhamadeev    schedule 28.02.2015
comment
@ ng80092b приведение к int усекает число, а не округляет, этот ответ правильный. - person Matthew; 28.02.2015