python:只获得1位小数

l--*_*''' 78 python

我如何转换45.3453145.3

rel*_*let 140

您是否只想用一位数表示它:

print("{:.1f}".format(number)) # Python3
print "%.1f" % number          # Python2
Run Code Online (Sandbox Code Playgroud)

或实际上舍入其他小数位?

round(number,1)
Run Code Online (Sandbox Code Playgroud)

甚至严格下来?

math.floor(number*10)/10
Run Code Online (Sandbox Code Playgroud)


mik*_*iku 22

>>> "{0:0.1f}".format(45.34531)
'45.3'
Run Code Online (Sandbox Code Playgroud)

或使用内置圆:

>>> round(45.34531, 1)
45.299999999999997
Run Code Online (Sandbox Code Playgroud)

  • 更新:Round现在给我45.3. (7认同)
  • 前面还有一个零,不是必需的。我还认为没有人真正理解格式语言,因此在我看来,保持简单是首选。现在使用 Python 3.6 我建议这样写:`f"{number:.1f}"`。 (6认同)
  • 答案是正确的,但格式化是复杂的IMO的方式.你应该写`"{:.1f}".format(45.34531)`. (2认同)