我有个小问题。为什么我要写这个:

ComPrimSideCtr = (ComPrimSideCtr + 1) % 1.0E+6;

我得到错误消息:#31表达式必须具有整型,但当我编写时:
ComPrimSideCtr = (ComPrimSideCtr + 1) % 1000000;

我没有收到任何错误信息?1.0E+6不就是1000000吗?
提前谢谢!

最佳答案

C中的e表示法(科学表示法)仅用于浮点常量。
因为C不允许1.0E+6运算符使用浮点操作数,所以它会发出错误消息。
1.0E+6不是1000000
不,%等于1.0E+6,默认情况下,该值假定为1000000.0常量(双精度浮点)。而double是一个整数(1000000)常量。

关于c - 使用指数形式的数字进行模运算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23363443/

10-11 15:22