matlab中while<1的循环里面有个if>1的条件语句,奇怪的问题来了

S=1; while(S<1) p=0.1; S=S+p; if S>1 S=1; end S end 为什么最后的输出里面会有两个1呢????

s=1不会进入while和if的语句里面,所以s的值从来没有变化

原因: 由于数值误差的存在,小数 1.0000 < 1 是可能成立的,因此while循环可能多执行一次。

不好意思 这个题目写错了 它一开始s=0 不是1哈 求解答!

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632