djang中的舍入函数

2024-09-27 23:25:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在视图中舍入一些数值计算值,比如---

5.5至5 或549 t0 500和599-600(最近的一个)

所以我想在django中使用roundoff或floor函数,就像我们在其他语言中使用的一样。在django中是否有与此相关的函数,那么请建议我一些函数,以及使用这些函数时必须导入的库。在

谢谢。在


Tags: django函数视图语言建议数值floort0
3条回答

你不会说你是在一个模板或其他地方这样做。在

在模板中,可以使用^{}过滤器。在

否则,它只是Python,所以可以使用普通的Python舍入函数。在

使用浮动时,可以使用roundmath.ceilmath.floor。在

对于decimal.Decimal,可以使用quantize方法,该方法允许您指定舍入:

value = decimal.Decimal('0.5')
value.quantize(decimal.Decimal('1'), decimal.ROUND_UP)
value.quantize(decimal.Decimal('1'), decimal.ROUND_DOWN)
value.quantize(decimal.Decimal('1'), decimal.ROUND_HALF_UP)
...

有关舍入方法的列表,请参见decimal.Context。在

请注意,python使用ROUND_-HALF-u,即使默认情况下,这对于统计数据非常有用,但对于金融数学来说却非常笨拙。将货币金额四舍五入到厘的典型方法是以下代码:

^{pr2}$

在视图中使用^{}

>>> import decimal
>>> numbers = ['5.5','499','1','0.5']
>>> for i in numbers:
...   the_number = int(decimal.Decimal(i))
...   if the_number / 10:
...      the_number = the_number + 10 - (the_number % 10)
...   print the_number
...
5
500
1
0

如果您想格式化float,请按照Daniel的建议使用^{},但它不会为您进行舍入。在

相关问题 更多 >

    热门问题