Why Decimal(0.01) is equal Decimal('0.01000000000000000020816681711721685132943093776702880859375')
            Asked
            
        
        
            Active
            
        
            Viewed 138 times
        
    -2
            
            
         
    
    
        Tomasz Brzezina
        
- 1,452
- 5
- 21
- 44
1 Answers
2
            There is a big difference between Decimal('0.01') and Decimal(0.01).
First converts str into Decimal (and Decimal('0.01') is equal Decimal('0.01'),
Second converts float into Decimal (that's why Decimal(0.01) is equal Decimal('0.01000000000000000020816681711721685132943093776702880859375')
 
    
    
        Tomasz Brzezina
        
- 1,452
- 5
- 21
- 44
- 
                    I don't understand the logic of deletion questions and answers which explains exact problem. Nobody would look for FLOATING POINT MATH BROKEN in Decimal(0.01). I solved the problem when I discover that 0.01 is a float. But earlier it was very confusing. – Tomasz Brzezina Sep 15 '21 at 12:42
- 
                    1I'm with you man. Although this information is in the duplicate question, it is buried deep in an answer with few upvotes, so I think it's worth having this specific question and your answer. But not everyone agrees with me on this. – joanis Sep 15 '21 at 13:52
- 
                    But there are too many questions are about floating point numbers being "broken" in every language, so I understand the rapid closing of such questions with a pointer to that question with its very detailed answers. – joanis Sep 15 '21 at 13:54