如何在Python中按前两位数字显示数值?除要求的前两位数字外,对于大于或等于100的数字,还应显示一个或多个零作为占位符。 Mathematica代码如下所示:
pf2[val_] := PaddedForm[N@val, 2]
pf2[12.345]
12
pf2@12345
12000
答案 0 :(得分:0)
您可以使用format
:
>>> "{:.2g}".format(12.345)
'12'
>>> "{:.2g}".format(12345)
'1.2e+04'
如果结果应为float
,请使用:
>>> float("{:.2g}".format(12.345))
12.0
>>> float("{:.2g}".format(12345))
12000.0
答案 1 :(得分:0)
round
函数接受负值,以便四舍五入到最接近的10、100等。我们可以使用log10
来确定要舍入的位数:
from math import log10, floor
def significant_digits(num, sig_digits):
return round(num, -int(floor(log10(abs(num))) - (sig_digits - 1)))
# Trying it out
print(significant_digits(12345, 1)) # 10000
print(significant_digits(12345, 2)) # 12000
print(significant_digits(12345, 3)) # 12300
print(significant_digits(12543, 2)) # 13000
print(significant_digits(1.2567, 2)) # 1.3
print(significant_digits(0.2345, 2)) # 0.23