C/C++如何对浮点数取余?(如果需要的话)

C/C++如何对浮点数取余?(如果需要的话)

不能对float型取余,只能对整数取余。想要实现这个功能的话,你可以把逗号后面的数变成整形(具体怎么变就要看你的数字是否有规则)之后再取余。再变成浮点数
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-26
先把浮点数转换为整数再取余
第2个回答  2012-05-24
不能对float型取余,只能对整数取余。
第3个回答  2019-07-14
C 标准库 - <math.h>
C 库函数 double fmod(double x, double y) 返回 x 除以 y 的余数。
第4个回答  2012-05-27
强制类型转换后就可以
float a;
int b=(int)a,c;
c=b%d;追问

可是这样的话,比如说123mod1.8,转换之后就变成123mod1了,计算结果显然不对

追答

嗯……mod是vb语言中的用法哦,在C语言中是用“%”代替的。
计算结果显然不对?
不会哦,因为C语言是向0取余,整数则去掉小数部分,负数则小数部分补足为-1。
所以强制类型转换后结果应该是123

追问

之所以用mod描述,是因为'%'不支持浮点数
这里mod不是关键字或编程语言运算符,是自然语言
向0取余?什么意思?
C语言的将浮点型强制转换为整型时,运算结果是浮点数的整数部分,比如1.8,如果(int)(1.8)那结果就是1,123%1的结果肯定是0.
你用windows计算器算一下就知道了,123mod1.8的结果应该是0.6(近似值),而不是0.
cout<<123%(int)(1.8);//实际运行后,这个语句和我想的一样,计算结果错误,输出的是0,而不是0.6
所以我才问这个问题

相似回答