Округлите двойной до int - PullRequest
       31

Округлите двойной до int

18 голосов
/ 15 февраля 2012

У меня есть номер ("double") из int / int (например, 10/3).

Каков наилучший способ аппроксимации по Excess и преобразования его в int на C #?

Ответы [ 4 ]

57 голосов
/ 15 февраля 2012

Вы спрашиваете о System.Math.Ceiling ?

Math.Ceiling(0.2) == 1
Math.Ceiling(0.8) == 1
Math.Ceiling(2.6) == 3
Math.Ceiling(-1.4) == -1
8 голосов
/ 15 февраля 2012
int scaled = (int)Math.Ceiling( (double) 10 / 3 ) ;
1 голос
/ 06 октября 2018

«Приближением по превышению» я предполагаю, что вы пытаетесь «округлить» число типа double.Итак, метод «потолка» @Doug McClean работает просто отлично.

Вот примечание: если вы начинаете с double x = 0.8; и выполняете преобразование типов с помощью (int)x;, вы получаете 0.Или, если вы сделаете (int)Math.Round(x);, вы получите 1.Если вы начинаете с double y = 0.4; и выполняете преобразование типов с помощью (int)y;, вы получаете 0.Или, если вы сделаете (int)Math.Round(y);, вы получите 0.

0 голосов
/ 15 февраля 2012

Рассмотрим 2,42, можно сказать, что это 242/100, кстати, вы можете упростить его до 121/50.

...