【发布时间】:2021-12-27 15:41:10
【问题描述】:
我试图用我在下面找到的代码将小数四舍五入,但它似乎在 python(django) 中无法正常工作。代码如下:
import math
def round_up(n, decimals=0):
multiplier = 10 ** decimals
return math.ceil(n * multiplier) / multiplier
以下是我运行该函数时得到的一些结果:
print(round_up(20.232, 2))
print(round_up(20.211, 2))
print(round_up(20.4, 2))
20.24
20.22
20.4
但是,由于某种原因,当我输入 80.4 时,我得到了一个奇怪的值。我得到的是 80.41 而不是 80.4:
print(round_up(80.4, 2))
80.41
还有其他方法可以在 python(django) 中舍入小数吗?我已经从互联网上得到了这个,所以除了我上面提到的问题(输入 80.4)之外,可能还有其他问题。基本上,我只想像上面那样将小数四舍五入到第二个小数点(但当然,四舍五入 80.4 或 20.3 分别只是 80.4 和 20.3)。谢谢,如有任何问题,请留下。
【问题讨论】:
-
这能回答你的问题吗? How to round to 2 decimals with Python?
-
不完全是。该链接用于round()。我正在尝试四舍五入。
-
您的问题来自浮点错误。试试 print(80.4 * (10 ** 2)) 看看为什么这不起作用。
-
@DanielP 你能把代码写成 print(round_up(decimal, number)) 格式吗?如果可能的话,如果您能编写完整的功能代码,我将不胜感激。
标签: python python-3.x django django-models django-views