#include<stdio.h>
void main()
{
float a = 5, b = 2;
int c;
c = a % b;
printf("%d", c);
}
我得到浮点错误这个程序 - 我..
有人请解释一下..
答案 0 :(得分:7)
您只能对整数操作数使用%
运算符。使用fmod
函数(在math.h
中声明)用于浮点操作数。
答案 1 :(得分:2)
运算符%
的操作数必须是整数(即int
,byte
,...)。您必须首先投射float
:
c = ((int)a) % ((int) b);
答案 2 :(得分:0)
“余数”的概念仅适用于整数除法。即需要产生整数商的除法。
在older
种语言中,%
运算符仅定义为integer modular division
。相当多的早期C编译器根本不支持floating point
。它是在以后添加的,并且该语言支持大多数原始操作,但其他所有内容都留给了standard library.
对于浮点数,需要一个新的操作来为浮点操作数生成整数商。
Core C语言不支持此类操作,但它作为标准库fmod
函数以及C99中的remainder
函数提供。