繁体   English   中英

整数除法与常规除法

[英]integer division vs regular division

我需要将循环中的整数与longlong的商进行比较。 为了不进行整数除法,如果我理解正确,是否需要将多头之一转换为双精度?

long prime = primes[d];
int i = 1;

//  "inputNumber / prime" should not be integer division, while it is now.
//  How do I do this yet still compare it to an "int" afterwards? 
while (i < (inputNumber / prime))
{
    primes[i*prime] = 0;
    i++;
}

那是代码片段。 primes是一个由long填充的数组。 顺便说一句,此代码是正确的:

primes[i*prime] = 0;

因为我担心long * int不适用于数组索引。

非常感谢!

为什么不用while((i * prime) < inputNumber)代替呢? long乘以int导致long ...

您可以将整数除法的操作数之一乘以1.0以避免结果被整数截断。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM