基本数据类型:数字

一、int(整型)

Python中的整数属于int类型,默认用十进制表示,此外也支持二进制,八进制,十六进制表示方式,计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便。

Python可以处理任意大小的整数,包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:3,89,-123,等等。

二、long(长整型)python2中有,python3中全部为int整型

python2中,long(长整型)的位数为超过31位,取值范围超过-2**31~2**31-1,即-2147483648~2147483647(直接运算会显示long型,因为2**31会先运算,是long型)

长整数数据后面加字母L,例如:

# python2
>>> (2**30-1)*2+1 2147483647 >>> 2147483647+1 2147483648L >>> -2147483648 -2147483648 >>> -2147483648-1 -2147483649L

python3中全部为int整型,例如:

# python3
>>> 2**100 1267650600228229401496703205376
>>> -2**123
-10633823966279326983230456482242756608

三、float (浮点型)

即小数,是有限小数或无限循环小数。

在运算中,整数与浮点数运算的结果也是一个浮点数。

整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的而浮点数运算则可能会有四舍五入的误差。

关于小数不精准问题

Python默认的是17位精度,也就是小数点后16位,尽管有16位,但是这个精确度却是越往后越不准的。

首先,这个问题不是只存在在python中,其他语言也有同样的问题

其次,小数不精准是因为在转换成二进制的过程中会出现无限循环的情况,在约省的时候就会出现偏差。

比如:11.2的小数部分0.2转换为2进制则是无限循环的00110011001100110011...

单精度在存储的时候用23bit来存放这个尾数部分(前面9比特存储指数和符号);同样0.6也是无限循环的;

本站公众号
   欢迎关注本站公众号,获取更多程序园信息
开发小院