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