Целочисленная математика в c#

На всякий случай, единственная колонка и ось - осуществимая идея ...

  • Поместите все имена в один столбец.
  • Формат в виде таблицы (мой преф.)
  • Выберите «Суммировать как сводную таблицу»
  • Добавить «Имя» поле для строк и значений

enter image description here

9
задан David Kemp 22 July 2009 в 11:44
поделиться

4 ответа

Можно бросить:

int ItemCount = (int) Math.Ceiling( (decimal)BrandCount / 4m );

Кроме того, потому что int/decimal результаты в a decimal можно удалить один из бросков:

int ItemCount = (int) Math.Ceiling( BrandCount / 4m );
21
ответ дан 4 December 2019 в 06:17
поделиться

Почему Вы даже используете десятичное число?

int ItemCount = (BrandCount+3)/4;

+3 удостоверяется, что Вы окружаете, а не вниз:

(37+3)/4 == 40/4 == 10
(38+3)/4 == 41/4 == 10
(39+3)/4 == 42/4 == 10
(40+3)/4 == 43/4 == 10

В целом:

public uint DivUp(uint num, uint denom)
{
    return (num + denom - 1) / denom;
}
11
ответ дан 4 December 2019 в 06:17
поделиться

Более длинная альтернатива с Модификацией.

ItemCount = BrandCount / 4;
if (BrandCount%4 > 0) ItemCount++;
7
ответ дан 4 December 2019 в 06:17
поделиться

Возможно, попробуйте что-то вроде этого... Принятие BrandCount целое число. У Вас все еще есть те же броски, но это могло бы быть более ясно:

int ItemCount = (int)(Math.Ceiling(BrandCount / 4m));

Я не огромный поклонник Convert класс, и я избегаю его, когда это возможно. Это всегда, кажется, делает мой код неразборчивым.

2
ответ дан 4 December 2019 в 06:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: