Python浮点数表示法

0 投票
3 回答
1275 浏览
提问于 2025-04-16 16:13

可能是重复的问题:
浮点数的限制

大家好,

这个问题可能有个很简单的答案。我在玩Python解释器的时候遇到了这个问题。

>>> 1
1
>>> 1.1
1.1000000000000001
>>> 1.2
1.2

为什么 1.1 被解释成了 1.1000000000000001 呢?

3 个回答

0

这是因为数字在内部存储的方式。具体的格式是在IEEE_754-2008标准中规定的。

关于单精度浮点数的更多信息,可以在这里找到。

0

你可以在这里查看关于浮点数运算的问题和限制。

无论如何,在Python 3中,你可以使用:

>>> 1
1
>>> 1.1
1.1
>>> 1.2
1.2
>>> 
1

来自 浮点数指南:

为什么我的数字,比如 0.1 + 0.2 加起来不是一个整整的 0.3,而是得到一个奇怪的结果,比如 0.30000000000000004 呢?

因为计算机内部使用一种格式(叫做二进制浮点数),这种格式根本无法准确表示像 0.1、0.2 或 0.3 这样的数字。

当代码被编译或解释时,你输入的“0.1”已经被四舍五入成了这个格式中最接近的数字,这样在计算之前就已经产生了一个小小的误差。

撰写回答