我的这个代码显示浮点错误..任何人都可以解释

时间:2013-07-21 14:31:38

标签: c

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

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

3 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:2)

运算符%的操作数必须是整数(即intbyte,...)。您必须首先投射float

c = ((int)a) % ((int) b);

答案 2 :(得分:0)

“余数”的概念仅适用于整数除法。即需要产生整数商的除法。

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

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

Core C语言不支持此类操作,但它作为标准库fmod函数以及C99中的remainder函数提供。