如何通过其前两个数字在Python中呈现数字值?除了要求的前两个数字外,还应出现一个或多个零作为占位符的数字或等于100的占位符。Mathematica代码看起来像这样:
pf2[val_] := PaddedForm[N@val, 2]
pf2[12.345]
12
pf2@12345
12000
您可以使用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
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