浮点数能进行取模运算吗?(不行,暂时只能是两个整数之间)
自己在Dev里验证了,浮点数取模时有编译错误,通不过。
如:[Error] invalid operands of types ‘double’ and ‘int’ to binary ‘operator%’
代码:
#include<iostream>
using namespace std;
int main()
{
float a=2.5;
float b=3.0;
// cout<<a%2<<endl; //[Error] invalid operands of types 'float' and 'int' to binary 'operator%'
// cout<<b%2<<endl;
cout<<3.0%2<<endl; //[Error] invalid operands of types 'double' and 'int' to binary 'operator%'
return 0;
}
以下是网上搜集到的一些资料:
问:为什么2.1%10=2
带小数的取模运算是怎么算的?
答:
指令可以用来计算两个浮点数取余结果。
既然处理器有这种指令,那就也就用函数可以用。C语言中有fmod函数可以用来计算两个浮点数取余,也可以用fmodf。
也可以上网搜下FPREM和FPREM1两条指令的用法。
精度问题,有时候不必太在意
至于浮点数取模,没用过
模运算,在数学里,是针对两整数而言的
也许java里有它自己的定义吧
版权声明:本文为deniece1原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END