仅获得小数点后一位[重复]
Posted
技术标签:
【中文标题】仅获得小数点后一位[重复]【英文标题】:Getting only 1 decimal place [duplicate] 【发布时间】:2011-03-24 23:28:49 【问题描述】:如何将45.34531
转换为45.3
?
【问题讨论】:
【参考方案1】:你是不是想用一个数字来表示它:
print(":.1f".format(number)) # Python3
print "%.1f" % number # Python2
或者实际上四舍五入其他小数位?
round(number,1)
甚至严格向下取整?
math.floor(number*10)/10
【讨论】:
第一个和第三个解决方案是否有可能给出不同的结果?我认为它们都完全相同@relet 尝试数字=-2.55。它们还返回不同的类型。 @DeveshSaini 尝试编号 2.36。第一个将给 2.4,第三个将给 2.3【参考方案2】:>>> ":.1f".format(45.34531)
'45.3'
或者使用内置的回合:
>>> round(45.34531, 1)
45.299999999999997
【讨论】:
更新:现在回合给我 45.3。 这个答案是正确的,但格式是复杂的 IMO。你应该写":.1f".format(45.34531)
。
@DaveHalter,写出0.1
而不是.1
太复杂了,任何人都可以遵循该代码...
前面还有一个零,不是必须的。我也认为没有人真正理解格式语言,所以保持简单是 IMO 的首选。现在使用 Python 3.6,我建议这样写:f"number:.1f"
.【参考方案3】:
round(number, 1)
【讨论】:
以上是关于仅获得小数点后一位[重复]的主要内容,如果未能解决你的问题,请参考以下文章