On Thu, 2008-12-11 at 17:23 +0200, Kenn Konstabel wrote: > Hi, > > I agree -- and my examples using round were meant as bad and dangerous > examples. Using round at the last step is better and may solve the problem, > but in your example ... > > > round(8.8-7.8,1)==1 > [1] TRUE > > ... you have to know in advance how many decimal places can possibly make a > difference (is it just one? maybe it is 2? 3? 15?). > > > round(8.8-7.8,14)==1 > [1] TRUE > > round(8.8-7.8,15)==1 > [1] FALSE > > ... or, equivalently, > > > 8.8-7.8-1 < 1e-15 > [1] TRUE > > 8.8-7.8-1 < 1e-16 > [1] FALSE > > Best regards, > Kenn
Hi Kenn, If you know "guard digits" approach you know the answer for your question. You need the minimum numbers of significant digits and put all numbers in same number of significant digits for comparison. In all example put in this thread we need only 1 decimal place so you round for 1 decimal place, if for your job you need 3 decimal places precision you round for 3 decimal place. I think don't make sense you using 10 decimal place precision if your problem need 2 decimal places precision ... -- Bernardo Rangel Tura, M.D,MPH,Ph.D National Institute of Cardiology Brazil ______________________________________________ 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.