仅获得小数点后一位[重复]

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)

【讨论】:

以上是关于仅获得小数点后一位[重复]的主要内容,如果未能解决你的问题,请参考以下文章

PTA乙级 (1012 数字分类 (20分),四舍五入小数点后一位)

你如何在Javascript中四舍五入到小数点后一位?

将双精度数舍入到小数点后一位(去掉小数位)

怎么对Float小数点后一位四舍五入,并且取绝对值

matlab中如何保留一位小数

十进制一位输入类型仅数字 Ionic 3 最新版本 (3.9.2) 我正在使用