如何使用 Math Ceiling RoundUp 如何确定偶数奇数

发布于 2024-12-04 05:03:44 字数 639 浏览 0 评论 0原文

我需要在预打印表单的两面打印来自 DataGridView 的数据,但是:

  1. 每一面对该信息都有不同的排列。
  2. 每一侧只能保存树行中的信息,因此:
  3. 第 1、2 和 3 行位于第 1 侧;
  4. 第 4、5 和 6 排位于第 2 侧;
  5. 第 7、8 和 9 排位于第 1 侧;
  6. 第 10、11 和 12 号位于第 2 侧;等等。

我将选择要打印的组。

我打算这样做: 在此处输入图像描述

  1. ((row.Index) +1) / 3,
  2. 四舍五入,不带小数,得到一个整数,(如上面的 excel 图像),
  3. 将整数除以 2,(如上面的 Excel 图像所示)。

如果 2 的 MOD 结果是 1,那么它将打印 Side 1 排列, 如果 2 的 MOD 结果为 0,则打印第 2 面排列。

  • 我如何在 C# 中做到这一点?我使用的是 VS2010 Express 版。还有,我 想要使用 System.Math.Ceiling 但我得到一个命名空间,十进制, 双精度和浮点数警告或错误。

I need to print data from a DataGridView on both sides of a preprinted form but:

  1. Each side has different arrangement for that info.
  2. Each side can only hold info from tree rows, so:
  3. 1st, 2nd and 3rd row go on side 1;
  4. 4th, 5th and 6th row go on side 2;
  5. 7th, 8th and 9th row go on side 1;
  6. 10th, 11th and 12th go on side 2; and so on.

I will select which group to print.

I’m planning to do it this way:
enter image description here

  1. ((row.Index) +1) / 3,
  2. round it up, with no decimals, to get an integer, (like in the above excel
    image),
  3. MOD that integer by 2, (like in the above excel image).

If the result of that MOD by 2 is 1, then it will print Side 1 arrangement,
if the result of that MOD by 2 is 0, then it will print Side 2 arrangement.

  • How do I do it in C#? I'm using VS2010 Express Edition. Also, I
    wanted to use System.Math.Ceiling but I get a Namespace, decimal,
    double-precision and floating-point number warnings or errors.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

似梦非梦 2024-12-11 05:03:44

我不认为您需要使用类似的东西:

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

I don't see that you need to use anything like that:

int zeroBasedRow = row - 1;
int side = ((zeroBasedRow / 3) % 2) + 1;

Test code:

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);
        }
    }
}

Output:

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文