Ответ 1
Я думаю, что Ceiling
делает то, что вы хотите:
return (int)Math.Ceiling((double)total / (double)divisor);
.. но я думаю, вам придется сохранить свой метод расширения, так как не существует встроенного метода, который делает это.
У меня есть этот метод расширения, но я не знаю, есть ли для него уже встроенный оператор или если для него есть имя:
public static class IntegerExtensions
{
public static int DivideWholeAndPartial(this int total, int divisor)
{
return (total / divisor) +
((total % divisor) == 0 ? 0 : 1);
}
}
По существу, если общее деление равномерно, то это возвращается. Если есть какие-либо остатки, то округляется - т.е. Включает частичные числа в целом. Вроде как "Сколько бутылок объемом 1 литр необходимо для хранения 3,5 литров воды".
Не хватает ли каких-либо встроенных методов С#? Есть ли название для этого?
Я думаю, что Ceiling
делает то, что вы хотите:
return (int)Math.Ceiling((double)total / (double)divisor);
.. но я думаю, вам придется сохранить свой метод расширения, так как не существует встроенного метода, который делает это.
Я не думаю, что существует "атомная" операция (я могу злоупотреблять этим словом) как для деления, так и для округления. Однако округляющая его часть будет функцией потолка. System.Math.Ceiling
будет обычным способом сделать это на С#:
return (int)Math.Ceiling((double)total / (double)divisor);
public static class IntegerExtensions
{
public static int DivideWholeAndPartial(this int total, int divisor)
{
return (int)Math.Ceiling((double)total / (double)divisor);
}
}