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