0
Why float yields 3.27826e-008 in C++?
I have this little code: https://code.sololearn.com/c8YYukIFcRf4/?ref=app The purpose of function1() is to subtract 0.2 to the variable number, the problem is, when number hit 0.0, it doesn't print 0.0, prints 3.27826e-008, why? This is the output: 0.8 0.6 0.4 0.2 3.27826e-008 -0.2 And the conditional doesn't work, it seems that it never reaches 0, why it jumps from 0.2 to 3.27826e-008? Maybe is because I use a static variable? How can I make the conditional works ? I want to print 0.0 instead 3.27826e-008.
2 odpowiedzi
+ 1
Maybe it is the same problem:
https://www.sololearn.com/Discuss/1642439/?ref=app
"Decimal fractions can't be stored exactly on a binary computer. There is a precision error.
For example, in some languages, if you tried this:
x=1.0/3.0*3.0
you would get
0.999999999
instead of 1.0000000"
+ 1
Denise Roßberg thank you so much, it seems that this kind of problems it's because the computer can't handle in a proper way numbers with decimals, I fix it just setting a particular precision.