重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
要使用math库。
10年积累的成都网站设计、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有德州免费网站建设让你可以放心的选择与我们合作。
#include math.h
float x;
......
if(fabs(x-(int)x)1e-8)printf("x是一个整数\n");
else printf("x不是一个整数\n");
一楼的方法是正确的,只要是分子分母的一项提升为float型,那么编译系统在运算前会二目提升到最高的float型的。
二楼的不正确,因为是把整形运算结果转变成float型,而此时两整形相除仍然得到的整形,再转换成float型会有精度损失的。
两个int变量相除,结果一定是int类型的,m=a/b; m的值是0
如果你想得到float结果,也可以加说明符如下:
m=(float)a/b;
或
m=a*1.0/b;
这样得到的结果是0.5
可以这样:
int
x=10,y=3;
double
z;
z
=
x
/
(y*1.0);
两个int型的数据相除结果会默认为int型,如果其中有一个为double型结果就为double型,
做强制类型转换或将其中一个数乘以1.0得到double型。
可以,有强制类型转换,a=5,b=6的情况下a/b=0(因为是int相除),a=6的情况下a/b=1