当我在浮点值上使用%运算符时,我得到错误信息:“无效的操作数到二进制%(有‘float’和‘double’)”.I只想输入整数值,但是数值非常大(不在整数类型的范围内),所以为了避免使用float.Is带来的不便,有没有办法对这么大的整数值使用%运算符?
发布于 2011-09-21 12:58:07
您可以使用标准数学库中的fmod
函数。它的原型在标准的头<math.h>
中。
发布于 2011-09-21 13:00:03
您最好使用long long
,在大多数系统中,它比double
具有更高的精度。
注意:如果您的数字超出了long long
的承受能力,那么fmod
可能不会按照您希望的方式运行。在这种情况下,最好的选择是一个大整数库,比如this one。
发布于 2011-09-21 13:42:26
%
运算符仅为整数类型操作数定义;您需要将fmod*
库函数用于浮点类型:
#include <math.h>
double fmod(double x, double y);
float fmodf(float x, float y);
long double fmodl(long double x, long double y);
https://stackoverflow.com/questions/7500128
复制相似问题