python能处理的整数没有最大值限制,浮点数有,python语言为何要同时提供整数和浮点数两种数据类型
浮点数就是实数,也称为小数。与整数不同,浮点数有小数部分。浮点数广泛用于统计和科学计算中。
现实生活中,我们常说一个半小时,应该用1.5小时来表示。一切浮点数自然存在于生活中,广泛存在于生活中。
的所有浮点数都是近似值。
1.2 * 6
7.199999999999999
1.2 * 6==7.2 #它们不相等。
错误的
所以两个浮点数是否相等需要用abs(a-b)1e-5来判断。
a=1.2 * 6
abs(a-7.2) 1e-5
真实的
至于浮点数,为什么和整数不一样,它们的值可以看成近似值?这与采用的十进制有关。比如在十进制中,三分之一(1/3)无法准确表示,只能近似等于0.333333。但这个数在三进制中可以精确地表示为0.1。同样的情况也发生在双星系统中。比如十进制的0.1,二进制是无法准确表示的。
以浮点数10.5为例介绍浮点数的表示法。浮点数一般分为两部分,整数部分和小数部分。整数的部分表示与整数的二进制表示相同。比如10用二进制数表示,就是1
10=8 2=23 21=0b1010
每个小数的权重依次为21、22、23、24,所以0.5可以表示为0.1。
所以10.5用二进制数表示为0b1010.1=0b1.0101*23。这是标准的浮点表示法,包括数字部分0b1.0101和指数3。部分值大于或等于1且小于2。
如果用十六进制表示,它是:
0b1.0101*23=0x1.5*23
但是我们不需要手动计算每个数字。Python提供了函数hex(),它是浮点对象的成员函数。下面演示了它的用法。
0.5.hex () #获取它的内部表示
0x1.5000000000000p 3 #数值部分是0x1.5,指数部分是3。
浮点数的基本运算
本节继续介绍浮点数的基本运算,包括加、减、乘、除和取幂。
1)加减乘除(-*/)
和整数一样,浮点数也支持加减乘除等基本运算,运算符号相同。
1.2 1.3 #加法运算
2.5
1.2-2.3 #减法
-1.0999999999999 #以获得近似值
1.2 * 2.0 #乘法运算
2.4
1.2/2.0 #除法运算
0.6
2)功率操作(* *)
浮点数也支持取幂,符号是* *。但是,负数不支持十进制幂运算。
1.2 ** 2
1.44
1.2 ** 2.3
1.5209567545525315
-1.2 ** 2 #相当于-(1.2 ** 2)
-1.44
(-1.2) ** 2 #负数的平方是正数
1.44
(-1.2) ** 2.1 #负数不支持十进制幂运算。
回溯(最后一次最近的调用):#引发异常
文件“”中的第1行
ValueError:负数不能乘方为分数幂
浮点数的其他运算
1)将浮点数转换为两个整数的近似商,——as_integer_ratio()
这是浮点数的成员函数。其用法如下:
A=0.1 #操作数
a.as_integer_ratio()
(3602879701896397, 36028797018963968)
302879701896397.0/36028797018963968 #的数值非常接近。
0.1
2)判断浮点数是否为整数——is_integer()
这是浮点数对象的固有功能,决定了一个浮点数是否为整数。其用法如下:
a=12.0
a.is_integer()
真实的
a=12.0001
a.is_integer()
错误的
当然,这也是一个近似值。例如,1.00000000001被视为1。下面演示了这种情况。
1.000000000000001 . is _ integer()#确定是否可以作为整数使用。
真实的
1.0000000000000001==1.0
真实的
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。