在Python中正确舍入浮点数的最简单方法是什么?

时间:2015-08-20 22:08:47

标签: python rounding

正如你们许多人所知道的那样,有时Python轮次为3.75 ......而不是3.8而不是3.8,这当然是一个问题。 (我在Python 3上。)

另一个用户在这里作为解决方案呈现了一个非常好的Python函数,他称之为round_exact(你可以通过搜索在Stack Overflow中找到它),但不幸的是,即使这个函数对于我的目的来说也不是最理想的,因为它似乎认为是零在最后一个小数位上总是多余的并将其切掉。

(我的意思是,如果我想要两位小数,而不是1.7,我希望看到1.695为1.70。)

所以,我还是想就如何处理Python在四舍五入的浮点数方面的缺点提出更多意见。

2 个答案:

答案 0 :(得分:3)

十进制模块允许精确控制舍入,并且可以保留尾随零:

ps

答案 1 :(得分:1)

对于数字显示,您应该打印两个小数而不是一个。这可以通过专门的格式化打印语句来完成。

"{:.2f}".format(7.1) # prints 7.10

如果您担心存在十进制不精确,请查看decimal模块。它提供高达28位的精度,也可用于可靠地打印出这些数字。