Десятичное число / двойное целое - округление вверх (не только до ближайшего) - PullRequest
15 голосов
/ 29 декабря 2011

Как бы вы округлили десятичное число или с плавающей точкой до целого числа.Например ...

0.0 => 0
0.1 => 1
1.1 => 2
1.7 => 2
2.1 => 3

И т. Д.

Ответы [ 5 ]

45 голосов
/ 29 декабря 2011

Простой, используйте Math.Ceiling:

var wholeNumber = (int)Math.Ceiling(fractionalNumber);
5 голосов
/ 29 декабря 2011

Как то так?

int myInt = (int)Math.Ceiling(myDecimal);
0 голосов
/ 16 мая 2017

Прежде чем сказать, что это не работает, вы должны проверить, что ВСЕ ЗНАЧЕНИЯ в операции имеют двойной тип.Вот пример в C #:

 int speed= Convert.ToInt32(Math.Ceiling((double)distance/ (double)time));
0 голосов
/ 23 марта 2016
var d = 1.5m;
var i = (int)Math.Ceiling(d);
Console.Write(i);
0 голосов
/ 18 октября 2014

Math.Ceiling не работает для меня, я использую этот код и эту работу:)

int MyRoundedNumber= (int) MyDecimalNumber;
                if (Convert.ToInt32(MyDecimalNumber.ToString().Split('.')[1]) != 0)
                    MyRoundedNumber++;

и, если вы хотите округлить отрицательное число, например, от -1,1 до -2, используйте

  int MyRoundedNumber= (int) MyDecimalNumber;
                    if (Convert.ToInt32(MyDecimalNumber.ToString().Split('.')[1]) != 0)
                        if(MyRoundedNumber>=0)
                           MyRoundedNumber++;
                        else
                           MyRoundedNumber--;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...