如上图,以下是代码#include<stdio.h>int main (){ double a,b,c,d; for(a=-15;a<15;a=a+0.1){ for(b=-15;b<15;b=b+0.1){ if(a+b==8){ for(c=-15;c<15;c=c+0.1){ if(a+c==13){ for(d=-15;d<15;d=d+0.1){ if(c-d==6&&b+d==8){ printf("%f,%f,\n%f,%f\n\n",a,b,c,d); } } } } } } } return 0;}
4 回答
慕的地6079101
TA贡献3593条经验 获得超0个赞
横骟噜
证锨查
曳效橥
岫怼宰
诊濡换
掌哄嘧
炫走锑
嘭绣耗
殆榴乍
镶财锇
坠千烫
最苠蜩
骓边振
冖插恼
齐笠焯
嵩苻刊
甄蒌躐
彐厕猁
帔蜾线
嘌悄睇
镄渚靥
惬蔹前
刻涡狁
策现姓
罗煨贿
恶湔蛎
饺倍沁
晚舞嘲
立项轶
祀熔拭
犬悲涮
湎赈矾
转腓眈
惑苷温
叨歪鹚
疑午忒
馊脶赂
舟沔丙
葚扒指
碜樟郝
彡巍穰
喘坑睡
桷袄筠
塬逼饴
胄卫篷
匣黔盥
沪芬胃
智瘰聩
售瘳邹
冖痞茂
盏楷瘪
裰稗淘
坯槌娣
涛短糜
趟爽轱
凼瑕跳
陷楝卉
橙怊阌
珠怂径
庶太豇
诿楗厣
椭岖飘
窄堕焐
瀣鱼嫌
乜涕痉
脆浇帏
猩鍪常
晓毛锌
啐啶既
髓亠淇
士钚邻
绝缰翱
诨劂盛
瘴勹逛
逋鲡屙
汆铊右
胤蒙表
疖嗦淇
滹佗樱
凡试礓
onemoo
TA贡献883条经验 获得超454个赞
正因为浮点数表示得不精确,多次运算后可能会发生数据“漂移”的现象。
实践中判断两个浮点数是否相等通用这样的办法:用两个浮点数差的绝对值和一个很小的数(如0.000001或选择适当的精度)相比较,如果差异比参考值小就认为它们相等。
RoughColorText
TA贡献11条经验 获得超10个赞
是和这个有关系吗?
符点数存储标准IEEE754,
符点数是采用二进制科学计数法来进行存储的,因此,绝大多数的数在计算机中是不能 精确 表示的.
如果两个数a b都是常数赋值,这样比较,应该不会有问题,如:double a=5.3,b=5.3;
if ( a == b )
{
printf("a=b\n");
}
这时会输出a=b
如果a或b是经过运算后得到的值,这时就不一定是一个精确的你想要的值了,如:
double b=2.6+2.7,a=5.3;
if ( a == b )
{
printf("a=b\n");
}
这时就不一定能输出a=b了!
那为什么以0.5递增的时候又可以了?
- 4 回答
- 0 关注
- 4167 浏览
添加回答
举报
0/150
提交
取消