为什么这个操作导致0?

时间:2015-04-19 18:38:32

标签: c#

我试图在这里完成的是计算迭代链表的算法进度,但是当我尝试将迭代次数除以链表中的元素总数时,我总是得到0,代码是这样的:

double progress = iteratorCount/crawlerTechnologiesLinkedList.Count;
            Console.WriteLine("Progress:" + progress * 100);

,调试会话显示这些值

debug session

我一直试图弄清楚为什么进步等于0.0但无济于事。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:5)

你可能只是将一个整数除以一个整数,因为除数大于被除数它会导致0.将其中一个整数首先加倍。

答案 1 :(得分:3)

您将一个整数除以另一个整数,因此执行integer division,结果为0.对于整数之后的,转换为双精度不会发生分裂已经完成。

为了防止这种情况,您需要在分割之前将一个(或两个)操作数强制转换为双精度。

答案 2 :(得分:2)

double progress = ((double) iteratorCount)/((double) crawlerTechnologiesLinkedList.Count);
Console.WriteLine("Progress:" + (progress * 100.0));

以下是我要做的事情。