Samuel Kemp wrote: > When subtracting, all numbers should be to 2 decimal places. Why is R > calculating it to 15 decimal places -- the output is essentially wrong > 112.47-112.30=0.17 NOT 0.170000000000002. I suspect I am encoding this > incorrectly? >
Well, two comments...one is not computer related. If you are subtracting two numbers which have two digits after the decimal (i.e., two significant figures), you shouldn't be accepting a result of more than two digits. So, the only thing wrong that you're doing is just that you're not formatting the output properly by cutting the remaining numbers. As for the second comment, computers cannot represent decimal numbers exactly and problems like this occurs very often. In the above example, one of your numbers can be represented exactly as 112.47 or 112.30. That's just something everyone has to be aware of when using computers to do math. This, in my opinion, is an excellent paper on the problem...it is quite technical, but at least worth a skim: http://docs.sun.com/source/806-3568/ncg_goldberg.html I found this sentence near the beginning of the article to be perfect: "Squeezing infinitely many real numbers into a finite number of bits requires an approximate representation." I presume there's an FAQ for R on this...not sure where it is, though. But, I hope this helps! Ray ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.