python能处理的整数没有最大值限制,浮点数有,python语言为何要同时提供整数和浮点数两种数据类型

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: