在编写代码的过程中遇到了一个让我记忆尤深的问题,举例:
for i in range(0, 8):if -1*3.9+ i*( 3.9/7 ) == 0:print( -1*3.9+ i*( 3.9/7 ) )else:print(f'No{i+1} No answer')
没有输出任何结果:

令i=7:

会发现-1*3.9+ i*( 3.9/7 )竟然不等于0, i*( 3.9/7 )也不等于3.9,这时就不由得让我想到浮点数的问题,计算机语言有固定位数的浮点数,所以可能是这个原因,导致3.9/7得到的是一个有限位数的浮点数,并不能完全等于3.9/7,之后乘以7自然也就不是3.9了。

如果你也遇到类似的判断问题,请留意!
为了得到我想要的判断结果,因此我选择先乘再除,修改代码如下:
for i in range(0, 8):if -1*3.9+ i* 3.9/7 == 0:print( -1*3.9+ i* 3.9/7 )else:print(f'No{i+1} No answer')

上一篇:害羞,互相照顾。