Python

Python 知识量:10 - 41 - 150

2.3 浮点数计算><

浮点数- 2.3.1 -

浮点数就是带小数点的数字,例如:1.0、3.1415和-6.6等。

在Python中,所有可用于整数的算术运算同样适用于浮点数,包括整除和求余运算。例如:

>>> 3.2+6.5
9.7
>>> 2.6-62.34
-59.74
>>> 2.0*8.2
16.4
>>> 365.0/12
30.416666666666668
>>> 2.5**-6.3
0.0031115583198510037
>>> 9.9%2.8
1.5000000000000009
>>> 6.68//2
3.0

浮点数字面量- 2.3.2 -

科学记数法常用于数值非常大或非常小的浮点数,例如:

>>> 6.6**-6.6
3.899509883537638e-06

以上结果中,e-06表示其前面的数字乘10-6

在浮点数的表示方面,Python非常灵活,可以使用.3来表示0.3,也可以使用3.来表示3.0,但是建议使用常规表示方法,特殊的写法容易产生误解。

溢出错误- 2.3.3 -

Python的浮点数与整数非常重要的不同点在于,浮点数是有上限和下限的,也就是说它是有字符宽度的,而整数是没有限制的。如果超出了限度,将导致溢出错误。对此错误,Python可能显示错误,也可能照样执行,而不告诉你出问题了。

一个浮点数计算结果溢出错误示例:

>>> 666.6**1000
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    666.6**1000
OverflowError: (34, 'Result too large')

精度问题- 2.3.4 -

浮点数的精度问题是一个无法解决的难题,不论在哪种计算机,使用哪种编程语言,都是如此。问题的根源在于,计算机使用的2进制不能总是精确表示浮点数。例如:

>>> 1-2/3
0.33333333333333337

在计算的正确答案中,小数点后面的3应是无穷个,而以上结果显然不同。对于一般的浮点数计算,精度问题不会产生太大危害,只有执行大量计算时才需要格外注意。