1
#include<stdio.h>
void main()
{
   float a = 5, b = 2;
   int c;
   c = a % b;
   printf("%d", c);
}

我在这个程序中遇到浮点错误 - 我..
有人请解释一下..

4

3 回答 3

7

您只能将%运算符与整数操作数一起使用。对浮点操作数使用fmod函数(在 中声明)。math.h

于 2013-07-21T14:32:52.050 回答
2

运算符的操作数%必须是整数(即int, byte...)。您必须先投射floats :

c = ((int)a) % ((int) b);
于 2013-07-21T14:35:47.723 回答
0

“余数”的概念只适用于整数除法。即生成整数商所需的除法。

older语言中,%运算符刚刚定义为integer modular division. 相当多的早期 C 编译器根本不支持floating point。它是后来添加的,并且该语言支持大多数原始操作,但其他一切都留给了standard library.

对于浮点数,需要一个新的运算来为浮点操作数生成整数商。

Core C 语言不支持这样的操作,但它作为标准库函数提供, C99中的函数fmod也一样。remainder

于 2013-07-21T15:00:33.560 回答