浮点数据不能直接求余数[Error] invalid operands of types 'double' and 'double' to binary 'operator%'


原谅我基础没学好
今天在做题的时候要用到求余数,因为之前一直都是整数求余数,可以用%来运算。这次我觉得也可以直接算,我一试,发现我太天真了
!!!
代码如下------------------------------------

#include<stdio.h>
int main()
{
	double a;
	a=11.1%1.0;
	printf("a=%f",a);
	return 0;
}

结果就是报错了

标题[Error] invalid operands of types ‘double’ and ‘double’ to binary ‘operator%’

翻译如下:类型“double”和“double”到二进制“操作符%”的无效操作数

我就非常纳闷呐
然后就查
重点来了

%号取余数一般用于整型之间即–>整型%整型=整型
所以对于浮点型数的求余数目前不能直接用一个符号来实现

如果懒得算的话,也不是没有快速算法
可以通过调用函数来直接实现

fmodf用于float型变量操作

fmod用于double型变量操作

modl用于long double型变量操作

以下以fmod举例


//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "math.h"
int main(void){
    double f=3.3,q=2.2;
    printf("%f\n",fmod(f,q));
    return 0;
}

不过一般做题的时候不建议调用函数,还是自己老老实实算算吧 >-<

发布了22 篇原创文章 · 获赞 17 · 访问量 1140

猜你喜欢

转载自blog.csdn.net/qq_45803800/article/details/104468096
今日推荐