在Python 3.5 / Ipython 7.3.0中以两位数表示数值

时间:2019-03-11 20:34:38

标签: python

如何在Python中按前两位数字显示数值?除要求的前两位数字外,对于大于或等于100的数字,还应显示一个或多个零作为占位符。 Mathematica代码如下所示:

pf2[val_] := PaddedForm[N@val, 2]

pf2[12.345]
12

pf2@12345
12000

2 个答案:

答案 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