【问题标题】:How can I use Math Ceiling RoundUp How to determine even odd number如何使用 Math Ceiling RoundUp 如何确定偶数奇数
【发布时间】:2011-09-08 21:25:52
【问题描述】:
我需要在预打印表单的两面打印来自 DataGridView 的数据,但是:
- 每一方对该信息都有不同的安排。
- 每一边只能保存来自树行的信息,所以:
- 第 1、第 2 和第 3 行在第 1 侧;
- 第 4 行、第 5 行和第 6 行在第 2 侧;
- 第 7 行、第 8 行和第 9 行在第 1 侧;
- 10th、11th 和 12th 位于第 2 侧;等等。
我将选择要打印的组。
我打算这样做:
- ((row.Index) +1) / 3,
- 四舍五入,不带小数,得到一个整数,(如上面的 excel
图片),
- 将该整数乘以 2,(如上面的 excel 图像中所示)。
如果那个MOD乘2的结果是1,那么它会打印Side 1排列,
如果那个MOD乘2的结果是0,那么它会打印Side 2排列。
- 如何在 C# 中执行此操作?我正在使用 VS2010 速成版。还有,我
想使用 System.Math.Ceiling 但我得到一个命名空间,十进制,
双精度和浮点数警告或错误。
【问题讨论】:
标签:
c#
decimal
modulo
ceil
roundup
【解决方案1】:
我认为您不需要使用类似的东西:
int zeroBasedRow = row - 1;
int side = ((zeroBasedRow / 3) % 2) + 1;
测试代码:
using System;
class Test
{
static void Main(string[] args)
{
for (int row = 1; row <= 12; row++)
{
int zeroBasedRow = row - 1;
int side = ((zeroBasedRow / 3) % 2) + 1;
Console.WriteLine("Row {0} goes on side {1}", row, side);
}
}
}
输出:
Row 1 goes on side 1
Row 2 goes on side 1
Row 3 goes on side 1
Row 4 goes on side 2
Row 5 goes on side 2
Row 6 goes on side 2
Row 7 goes on side 1
Row 8 goes on side 1
Row 9 goes on side 1
Row 10 goes on side 2
Row 11 goes on side 2
Row 12 goes on side 2