python中浮点数用`float`表示,它与数学中实数的概念一致,简单理解为小数。 与整数一样,浮点数可以直接使用,看下面的代码。 ```python >>> pai = 3.14 >>> type(pai) float ``` ## 浮点数的表现形式 在python中浮点数最常见的表示形式是`a.b`的格式,也可以表示为科学计算法。例如: ```python >>> 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提供无限制且准确的整数计算,浮点数计算却是不精确的,例如: ```python >>> 0.2 + 0.1 0.30000000000000004 ``` 普通计算机只能提供15数字的准确性,浮点数在超过15位数字计算中产生的误差与计算机内部采用二进制运算有关。 ```python import sys print(sys.float_info.dig) 15 ``` 思考: ```python 3.1415926535897924*1.23456789 ``` 的计算怎么准确? ## 浮点数和整数的相互转化 `int`,`float`是python的内置函数,通过它们可以对浮点数类型和整数类型相互转化。 浮点数转化为整数 ```python >>> a = 1.9 >>> b = int(a) # 通过int函数,提取浮点数的整数部分 >>> print(b, type(b)) 1 <class 'float'> ``` 整数转化为浮点数 ```python >>> c = 2 >>> d = float(c) # 通过float函数,将整数转化为小数部分为0的浮点数 >>> print(d, type(d)) 2.0 <class 'float'> ``` ## 复数 普通的计算很少用到复数,了解即可。 ```python >>> a = 12.3 + 4j # 复数 >>> print(a, type(a)) (12.3+4j) <class 'complex'> >>> print(a.real) # 打印实部 12.3 >>> print(a.imag) # 打印虚部 4.0 ```