C语言浮点型数据能不能取余?
2个回答
展开全部
可以,但不能用操作符%,而要用库函数fmodf、fmod或fmodl。因为%是整型取余操作符,要求两边都是整型数才行,结果也是整型;fmodf用于float型变量操作,fmod用于double型变量操作,fmodl用于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;
}运行结果是1.100000。
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;
}运行结果是1.100000。
展开全部
可以相除,计算机先将整型变量值的类型自动转换为浮点型(但是整型变量本身的数据类型和值并不改变),之后进行浮点数的运算。
举例如下:
int a1=4, a2;
float b1 = 5.2, b2;
a2 = b1/a1; // 运算结果为1,因为a2为int类型,所以将5.2/4=1.3的结果转换为int型,即舍去小数部分
b2 = b1/a1; // 运算结果为1.3,因为b2为float类型,可以表示小数,所以将5.2/4=1.3的结果直接赋值给变量b2
举例如下:
int a1=4, a2;
float b1 = 5.2, b2;
a2 = b1/a1; // 运算结果为1,因为a2为int类型,所以将5.2/4=1.3的结果转换为int型,即舍去小数部分
b2 = b1/a1; // 运算结果为1.3,因为b2为float类型,可以表示小数,所以将5.2/4=1.3的结果直接赋值给变量b2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询