python中浮点数用float
表示,它与数学中实数的概念一致,简单理解为小数。
与整数一样,浮点数可以直接使用,看下面的代码。
>>> pai = 3.14
>>> type(pai)
float
浮点数的表现形式
在python中浮点数最常见的表示形式是a.b
的格式,也可以表示为科学计算法。例如:
>>> a = 0.0 # 注意浮点数0和整数0是不一样的
>>> b = 9.5e-2 # 科学计算法
>>> c = .55 # 整数部分为0可以省略
>>> d = 78. # 小数部分为0也可以省略
>>> e = .0 # 所以浮点数0也可以这样写
>>> f = 0. # 同样也可以这样写
>>> g = -0.1 # 当然也有负数
我们可以看到浮点数其实可以表示所有的整数,python为何要同时提供两种数据类型呢?
因为计算机表示整数和浮点数的方式不同,相同操作整数要比浮点数快5-20倍。
浮点数的不准确性
python提供无限制且准确的整数计算,浮点数计算却是不精确的,例如:
>>> 0.2 + 0.1
0.30000000000000004
普通计算机只能提供15数字的准确性,浮点数在超过15位数字计算中产生的误差与计算机内部采用二进制运算有关。
import sys
print(sys.float_info.dig)
15
思考:
3.1415926535897924*1.23456789
的计算怎么准确?
浮点数和整数的相互转化
int
,float
是python的内置函数,通过它们可以对浮点数类型和整数类型相互转化。
浮点数转化为整数
>>> a = 1.9
>>> b = int(a) # 通过int函数,提取浮点数的整数部分
>>> print(b, type(b))
1 <class 'float'>
整数转化为浮点数
>>> c = 2
>>> d = float(c) # 通过float函数,将整数转化为小数部分为0的浮点数
>>> print(d, type(d))
2.0 <class 'float'>
复数
普通的计算很少用到复数,了解即可。
>>> a = 12.3 + 4j # 复数
>>> print(a, type(a))
(12.3+4j) <class 'complex'>
>>> print(a.real) # 打印实部
12.3
>>> print(a.imag) # 打印虚部
4.0