使用指数形式的数字进行模运算

时间:2014-04-29 11:30:08

标签: c modulo

我有一个小问题。我怎么写这个:

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

我收到错误消息:#31表达式必须具有整数类型,但是当我写:

ComPrimSideCtr = (ComPrimSideCtr + 1) % 1000000;

我根本没有收到任何错误消息?不是1.0E + 6和1000000相同的数字吗?

提前致谢!

1 个答案:

答案 0 :(得分:4)

像这样1.0E+6的C中的电子符号(科学记数法)仅用于浮点常数。

由于C不允许%运算符的浮点操作数,因此它会发出该错误消息。


  

Isn< 1.0n + 6与1000000相同的数字

不,1.0E+6等同于1000000.0,默认情况下假定为double常量(双精度浮点)。虽然1000000是一个整数(int)常量。