Python浮点数表示法
可能是重复的问题:
浮点数的限制
大家好,
这个问题可能有个很简单的答案。我在玩Python解释器的时候遇到了这个问题。
>>> 1
1
>>> 1.1
1.1000000000000001
>>> 1.2
1.2
为什么 1.1
被解释成了 1.1000000000000001
呢?
3 个回答
0
这是因为数字在内部存储的方式。具体的格式是在IEEE_754-2008标准中规定的。
关于单精度浮点数的更多信息,可以在这里找到。
0
1
来自 浮点数指南:
为什么我的数字,比如 0.1 + 0.2 加起来不是一个整整的 0.3,而是得到一个奇怪的结果,比如 0.30000000000000004 呢?
因为计算机内部使用一种格式(叫做二进制浮点数),这种格式根本无法准确表示像 0.1、0.2 或 0.3 这样的数字。
当代码被编译或解释时,你输入的“0.1”已经被四舍五入成了这个格式中最接近的数字,这样在计算之前就已经产生了一个小小的误差。