python incorrect rounding with floating point numbers

前端 未结 4 905
再見小時候
再見小時候 2020-12-07 02:30
>>> a = 0.3135
>>> print(\"%.3f\" % a)
0.314
>>> a = 0.3125
>>> print(\"%.3f\" % a)
0.312
>>>

I am exp

4条回答
  •  無奈伤痛
    2020-12-07 03:33

    If you need accuracy don't use float, use Decimal

    >>> from decimal import *
    >>> d = Decimal(0.3125)
    >>> getcontext().rounding = ROUND_UP
    >>> round(d, 3)
    Decimal('0.313')
    

    or even Fraction

提交回复
热议问题