Global decimal rounding options in Django

后端 未结 4 816
生来不讨喜
生来不讨喜 2021-01-24 11:14

Decimal numbers are by default rounded very unexpectedly, in order to make it work normally, it is needed to use ROUND_HALF_UP option.

>>>          


        
4条回答
  •  醉酒成梦
    2021-01-24 11:23

    Worked in 1.9.5 (based on comment from @ark):

    In myapp/apps.py

    from __future__ import unicode_literals
    import decimal
    from django.apps import AppConfig
    
    
    class MyAppConfig(AppConfig):
    
        name = 'myapp'
    
        def ready(self):
            # Set precision
            decimal.getcontext().prec = 9
            decimal.getcontext().rounding = decimal.ROUND_HALF_DOWN
    

    In settings.py

    INSTALLED_APPS = list(INSTALLED_APPS)
    INSTALLED_APPS.append('myapp.apps.MyAppConfig')
    

提交回复
热议问题