编程语言
首页 > 编程语言> > python-Django中的全局十进制舍入选项

python-Django中的全局十进制舍入选项

作者:互联网

默认情况下,十进制数会非常意外地四舍五入,为了使其正常工作,需要使用ROUND_HALF_UP选项.

>>> from decimal import *
>>> Decimal("2.5").quantize(Decimal(1))
Decimal('2')
>>> getcontext().rounding = ROUND_HALF_UP
>>> Decimal("2.5").quantize(Decimal(1))
Decimal('3')
>>> Decimal("2.4").quantize(Decimal(1))
Decimal('2')

我的问题是-在Django应用程序中,我必须在何处设置舍入选项,以便它在项目中全局运行?全局地说,我的意思是模板(floatformat模板标签),视图,模型十进制字段等.

解决方法:

Decimal与Django无关,它们是标准python库的一部分. getcontext函数返回当前线程的上下文,因此,如果您不做任何时髦的事情,每个请求都将在一个线程中执行.这基本上意味着在settings.py文件中设置选项就足够了.

标签:python,django,rounding,decimal
来源: https://codeday.me/bug/20191013/1905646.html