C#检查进度奇怪的问题 - c#

我在构造函数中有一个循环,该循环创建并初始化锯齿状的对象数组。在循环内部,每次迭代我都会将其打印到控制台,这样我就知道它在整个过程中进行了多长时间。它仅以5的倍数打印到控制台(尽管出于某种原因它仅以10的倍数打印),因此不会向屏幕发送垃圾邮件。例如15%20%25%。

当我在Windows的.Net 2.0上运行代码时,它每10%(而不是5%)打印一次。如果我在ARM机器上的Mono上运行相同的代码,则根本不会输出任何进度。

是什么导致Mono不提供任何输出?
为什么只以10%而不是5%的增量打印?

谢谢

这是代码:

public Map(int NumberOfRows, int NumberOfColumns)
{
    Rows = NumberOfRows;
    Columns = NumberOfColumns;

    TileGrid = new Tile[NumberOfRows][];
    for (int x = 0; x < TileGrid.Length; x++)
    {
        TileGrid[x] = new Tile[NumberOfColumns];
        for (int y = 0; y < TileGrid[x].Length; y++)
        {
            TileGrid[x][y] = new Tile();
        }

        if (((double)x / Rows) * 100 % 5 == 0)
        {
            Console.WriteLine("{0}%", ((double)x / Rows) * 100);
        }
    }
}

参考方案

问题基本上是您要对浮点数执行相等性检查,这绝不是好主意。

更好...但是仍然不好:

int percentage = (x * 100) / Rows;
if (percentage % 5 == 0)
{
    Console.WriteLine("{0}%", percentage);
}

除非您最终精确地达到5%的倍数,否则仍然无法打印百分比。因此,如果有12个项目,它将无法正常工作。尝试以下方法:

// Before the loop
int lastPrintedPercentage = -5; // So that we always print on the first loop

// Within the loop
int percentage = (x * 100) / Rows;
if (percentage >= lastPrintedPercentage + 5)
{
    Console.WriteLine("{0}%", percentage);
    lastPrintedPercentage = percentage;
}

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

改造正在返回一个空的响应主体 - java

我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…

在PHP中使用long int - php

我正在尝试此方法,但无法存储较大的价值$var = rand(100000000000000,999999999999999); echo $var; // prints a 9 digit value(largest possible) 如何获得期望值? 参考方案 PHP整数通常为32位。其他软件包提供了更高精度的整数:http://php.net/man…

每个文件合并后添加换行 - python

我有很多类似以下内容的JSON文件:例如。1.json{"name": "one", "description": "testDescription...", "comment": ""} test.json{"name"…

您如何在列表内部调用一个字符串位置? - python

我一直在做迷宫游戏。我首先决定制作一个迷你教程。游戏开发才刚刚开始,现在我正在尝试使其向上发展。我正在尝试更改PlayerAre变量,但是它不起作用。我试过放在列表内和列表外。maze = ["o","*","*","*","*","*",…