python中浮点型占几个字节,Python浮点数表示

  python中浮点型占几个字节,Python浮点数表示

  浮点数由机器上浮点数的本机双精度(64位)表示。提供大约17位的精度和范围从-308到308的索引。与C语言中的double类型相同。Python不支持32位单精度浮点数。如果程序需要精确控制音程和数字精度,可以考虑使用numpy扩展库。

  Python 3。默认情况下,x为浮点数提供17位精度。

  单精度和双精度的通俗解释;

  单精度和双精度,其类型说明符是浮点单精度说明符和双双精度说明符。在Turbo C中,单精度类型占用4字节(32位)内存空间,其数值范围从3.4e-38到3.4e38,只能提供7个有效数字。双精度型占用8字节(64位)内存空间,其数值范围为1.7E-308~1.7E 308,可提供16位有效数字。

  需要17位以上的精度分析。

  Python默认的精度是小数点后17位,但是这里有个问题,当我们的计算需要使用更高的精度(小数点后17位以上)时该怎么办?

  1.使用格式(不推荐)a=%.30f% (1/3)

  a

  0.333333333333333314829616256247

  可以显示出来,但是不准确,后面的数字往往没有意义。

  2.使用精度高的十进制模块,配合来自十进制导入的getcontext

  print(getcontext())

  上下文(prec=28,rounding=ROUND_HALF_EVEN,Emin=-999999,Emax=999999,capitals=1,clamp=0,flags=[],traps=[InvalidOperation,DivisionByZero,Overflow])

  getcontext()。prec=50

  b=十进制(1)/十进制(3)

  b

  十进制( 0.3333333333333333333333333333333333333333333333333333333 )

  c=十进制(1)/十进制(17)

  c

  十进制( 0.058823529411764705882352941176470588235294117647058235294117647059 )

  浮动(c)

  0.058823529411764705

  默认上下文的精度是28位,可以设置为50位甚至更高。这样,在分析复杂的浮点数时,您可以获得更高的精度。其实可以在上下文中关注一下这个rounding=ROUND_HALF_EVEN参数。ROUND_HALF_EVEN,当一半时,接近偶数。

  本文地址:http://itbyc.com/Python/21495.html

  请注明出处。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

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