Fix float precision with decimal numbers

后端 未结 4 1438
盖世英雄少女心
盖世英雄少女心 2021-01-22 16:49
a = 1

for x in range(5):
    a += 0.1
    print(a)

This is the result:

1.1
1.2000000000000002
1.3000000000000003
1.4000000000000004
1.         


        
4条回答
  •  甜味超标
    2021-01-22 17:28

    can i set the precision of a variable before setting the value?

    Use the decimal module which, unlike float(), offers arbitrary precision and can represent decimal numbers exactly:

    >>> from decimal import Decimal, getcontext
    >>> 
    >>> getcontext().prec = 5
    >>> 
    >>> a = Decimal(1)
    >>> 
    >>> for x in range(5):
    ...     a += Decimal(0.1)
    ...     print(a)
    ... 
    1.1000
    1.2000
    1.3000
    1.4000
    1.5000
    

提交回复
热议问题