永发信息网

python小数取余,为什么time对0.1取余==0不行呢,代码如下:

答案:2  悬赏:80  手机版
解决时间 2021-03-07 05:45
  • 提问者网友:遮云壑
  • 2021-03-06 06:59
time = 0
timeinterval = 0.01

while True:
time += timeinterval
if (time)%(0.1) == 0:

print "Hello World"
break
elif time > 0.11:
break
else:
print "Goodbye"

结果不是应该有个“Hello World”的吗?
最佳答案
  • 五星知识达人网友:山河有幸埋战骨
  • 2021-03-06 07:27
在精确的数学上,确实可以取余,但是到了计算机里面却不一定,因为有精度损失
(time)%(0.1) == 0 这一句你可以改成写 abs((time)%(0.1) - 0) < 1e-5
全部回答
  • 1楼网友:北方的南先生
  • 2021-03-06 09:07
你好! 取余这种东西不要用在浮点数上。你换一种别的写法吧。 仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯