0
Why is this happening?
#include<iostream> #include<conio.h> using namespace std; int main(){ int n; double x=87.19856; float y=87.19856; n=x; cout<<endl<<"x= "<<x-n; //in this case x=0.19856 n=y; cout<<endl<<"y= "<<y-n; //in this case y=0.198563 the number "3" is wrong. return 0; } /* this happen with others numbers too. my english is pretty bad*/
2 odpowiedzi
+ 6
http://effbot.org/pyfaq/why-are-floating-point-calculations-so-inaccurate.htm
tl;dr - There is no guarantee for computers to represent floating-point values accurately.
+ 1
woooo "Some decimal numbers can’t be represented exactly in binary, resulting in small roundoff errors." and "double has more precision than floats."
I didn't have idea. thanks for the link and the answer.