问一个简单的C++的问题?!请教一个问题:下列程序通过for语句重复相加0.01共10次,最后判定相加结果0.1?
答案:5 悬赏:0 手机版
解决时间 2021-11-27 23:46
- 提问者网友:wodetian
- 2021-11-27 15:08
问一个简单的C++的问题?!请教一个问题:下列程序通过for语句重复相加0.01共10次,最后判定相加结果0.1?
最佳答案
- 五星知识达人网友:走死在岁月里
- 2021-11-27 16:27
答案是不相等的,你把精确度调一下会发现b不是0.1而是0.0999999403953552200。
代码中cout< 需要添加#include头文件。
不相等的原因,是因为计算机在存储小数时的不精确引起的。
你可以看一本书有详细的介绍,《计算机科学概论》。
纯手打、望采纳
Pinohans
代码中cout< 需要添加#include
不相等的原因,是因为计算机在存储小数时的不精确引起的。
你可以看一本书有详细的介绍,《计算机科学概论》。
纯手打、望采纳
Pinohans
全部回答
- 1楼网友:举杯邀酒敬孤独
- 2021-11-27 20:03
我暂时保留我的看法!
- 2楼网友:轻雾山林
- 2021-11-27 18:54
浮点数比较大小都是用差值小于一个极小值,则个极小值,你可以自己选择。浮点数本来就不是精确存储的。
- 3楼网友:第四晚心情
- 2021-11-27 18:47
浮点数是不能使用比较大小的,或者换句话说,浮点数不能精确的比较大小,所以不能采用你的方式,可以变更一下程序。
添加头文件:math.h
将if(a == b)替换if(fabs(a-b)<1e-6)
添加头文件:math.h
将if(a == b)替换if(fabs(a-b)<1e-6)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯