python重点看2和7个最后1位与其他的不一样,我新手求不喷。

print(0.12345678901234507)
print(0.12345678901234517) # 为什么到了1输出结果最后就不一样了
print(0.12345678901234527)
print(0.12345678901234537)
print(0.12345678901234547)
print(0.12345678901234557)
print(0.12345678901234567) # 为什么到了6输出结果最后就也不一样了。
print(0.12345678901234577)
print(0.12345678901234587)
print(0.12345678901234597)

输出结果为:
0.12345678901234507
0.12345678901234516
0.12345678901234527
0.12345678901234537
0.12345678901234547
0.12345678901234557
0.12345678901234566
0.12345678901234577
0.12345678901234587
0.12345678901234597

Process finished with exit code 0

浮点数精度 http://www.pythondoc.com/pythontutorial3/floatingpoint.html

计算机底层都是用二进制表示的,二进制表示十进制,尤其在小数部分通过乘2取整的方式,但是有些小数到最后不一定正好能取到,所以会存在很小的误差

该print()的参数是数而不是字符串,python会将其转化为字符串输出,但前提是是先将参数保存,可收到浮点数精度的影响,0.12345678901234517并不能准确存储,而是存成了与其最近的二进制浮点数