#1.2.2 float
e=1e1
f=5.222e3
print('e * f =',e*f)
e=1e2
f=5.222e2
在我的VS code里输出结果分别是
e * f = 52220.0
e * f = 52220.00000000001
为啥第二个后面会有个0.00___1啊?
对,我觉得就是浮点数计算的问题,应该是浮点数在计算机中是以二进制保存的,有些数是不精确的,比如0.1转为二进制就是无限循环小数,Python是以64位精度类保存浮点数的,多余的位会被截掉,所以你看到0.1但在电脑中实际保存的已经不是精确的0.1,我觉得是这个原因
谢谢,尽管我Fortran,Python,Matlab里都提到或者遇到二进制保存的浮点数可能会出现这种问题,可是当真的出现的时候又感觉看着很不舒服。
Sign in to make a reply
Mumei
#1.2.2 float
e=1e1
f=5.222e3
print('e * f =',e*f)
e=1e2
f=5.222e2
print('e * f =',e*f)
在我的VS code里输出结果分别是
e * f = 52220.0
e * f = 52220.00000000001
为啥第二个后面会有个0.00___1啊?