在python中打印精度为8位的小数?

2024-10-04 11:29:59 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码打印各种精度的小数,但恢复为超过7位的科学记数法。我需要在UI中显示至少8个位置的字符串宽度。你知道吗

如何获得精度为8位的严格小数点?你知道吗

from decimal import *
getcontext().prec = 8 # set precision to 8 decimal points. 
getcontext().rounding = "ROUND_DOWN" # alway round down 

# stringified zero of various precisions

zw = ['0', '0.0', '0.00', '0.000000', '.00000000', '0.00000000', '0.000000000000']

for n in range(0,len(zw)): 
    zstr = zw[n]                # stringified zero 
    zdec = Decimal(zstr)        # decimalized zero
    print (zstr, ":", zdec) # compare stringified and decimalized zero

Tags: 字符串代码ui精度科学decimalzero小数
2条回答

尝试:

from decimal import *
getcontext().prec = 8 # set precision to 8 decimal points. 
getcontext().rounding = "ROUND_DOWN" # alway round down 

# stringified zero of various precisions

zw = ['0', '0.0', '0.00', '0.000000', '.00000000', '0.00000000', '0.000000000000']

for zstr in zw: 
    zdec = Decimal(zstr)        # decimalized zero
    print ('{} : {:.8f}'.format(zstr, zdec)) # compare stringified and decimalized zero

印刷品:

0 : 0.00000000
0.0 : 0.00000000
0.00 : 0.00000000
0.000000 : 0.00000000
.00000000 : 0.00000000
0.00000000 : 0.00000000
0.000000000000 : 0.00000000

使用format/f和字符串格式(docs):

for zstr in zw:   
    zdec = Decimal(zstr)
    print (zstr, ":", f'{zdec:.8f}') 

0 : 0.00000000
0.0 : 0.00000000
0.00 : 0.00000000
0.000000 : 0.00000000
.00000000 : 0.00000000
0.00000000 : 0.00000000
0.000000000000 : 0.00000000

相关问题 更多 >