永发信息网

关于c语言编程问题!

答案:3  悬赏:0  手机版
解决时间 2021-05-10 20:09
  • 提问者网友:沉默的哀伤
  • 2021-05-10 01:53

为什么a=0要用fabs(a)<1e-6表示?????

1e-6是什么意思??

最佳答案
  • 五星知识达人网友:独行浪子会拥风
  • 2021-05-10 02:11

要注意的是,计算机的计算是存在误差的。。例如说float 虽然能表示小数。。但它的有效位数却只有6位或7位。。当超过这个限制后。。后面的将会用四舍五入后能得到那个数的随机数来代替、。。试试运行下面的代码。。输出的不是123.456700.。。而是123.456703或其它的随机值。。这是因为已经超出了计算机定义的精度了。。


所以在有效位数多的时候,直接等可能会因为误差而出错。。。最好的办法就是利用精度来比较···


fabs(a)<1e-6 。。希望LZ明白··


#include<stdio.h>
main()
{
float num=123.4567;
printf("%f\n",num);
return 0;
}

全部回答
  • 1楼网友:杯酒困英雄
  • 2021-05-10 03:31
1e-6是表示10的-6次方
  • 2楼网友:人類模型
  • 2021-05-10 02:22
10的-6次方 即0.000001 fabs(a)是a的绝对值 约等 显然 a的值不能真的为0,只能近似
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯