+ 4
[Solved] 0.1+0.1+0.1==0.3 evaluates to False
Why the above expression evaluates to false in Python?
7 odpowiedzi
+ 5
python cant represent 0.1 exactly as binary
also not 0.3 as binary.
try yourself with 1/2,1/4,1/8,1/16....
Error will become worse with adding.
+ 2
Thanks for your support.
I now understand this concept clearly. The precision and never-ending sequence makes this problem critical and conversion to binary makes it a top-tier limitation. Other points are there but I think this should be enough.
Thanks again
+ 2
Well your computer cannot really correctly store data in its memory,and the only form of language your computer understands is machine language,its a low level language in which all other languages are compiled or interpreted into,and machine language converts your high level code into low level language(binary),so 0.1 converted to binary form is like this:0.00011001100110011001100110011001100110011001100110011001100110...till infinity,so 0.1 in 3 places will be like 0.01001100 till infinity,so it has to truncate a part of this binary digit called the least significant digit,so for example 11.00000000002 may be stored in your computer's memory as 11.0but 11.000000002 is not equal to 11
+ 1
it is a problem of binary representation.
You had it yet in school?
0
maybe because python is not strongly typed language and both sides are compared as string instead of float.
0
Oma Falk, Well I am about to pass 11th and we had a crash course [i.e. Syllabus of one year in just three months] therefore my basics are somewhat strong but not fully complete. So please explain this problem as detailed as possible