2016-07-04 22 views
0

に大量に分割:私はなぜ10分の23432423432423434が2343242343242343.5 は、Python 3のpython 3

  • および10分の46374212988031352を与えるのに対し、

    1. 10分の234324234324234は23432423432423.4
    2. を与えることは4637421298803135.0

    を与えます小数点で予期しない出力が得られますか?

  • 答えて

    0

    あなたは「高速正しく丸めた10進浮動小数点演算」

    In [4]: import decimal 
    
    In [5]: decimal.Decimal(234324234324234)/10 
    Out[5]: Decimal('23432423432423.4') 
    
    In [6]: decimal.Decimal(23432423432423434)/10 
    Out[6]: Decimal('2343242343242343.4') 
    
    In [7]: decimal.Decimal(46374212988031352)/10 
    Out[7]: Decimal('4637421298803135.2') 
    
    ため decimal moduleを使用する必要があります