Hi Thanks for the quick reply. However, I am not satisfied, as > round(3.15000000, 1) [1] 3.1 > round(3.75000000, 1) [1] 3.8
I think the problem is really more of an error in the rounding off algorithm than finite precision. Thanks Teckpor -----Original Message----- From: Duncan Murdoch [mailto:[EMAIL PROTECTED] Sent: Monday, May 29, 2006 17:41 To: [EMAIL PROTECTED] Cc: r-devel@stat.math.ethz.ch; [EMAIL PROTECTED] Subject: Re: [Rd] Numerical error in R (win32) (PR#8909) On 5/29/2006 12:22 PM, [EMAIL PROTECTED] wrote: > Hi > I had observed the following problem in R (also C, Matlab, and Python). > sprintf('%1.2g\n', 3.15) > give 3.1 instead of 3.2 whereas an input of 3.75 gives 3.8. > Java's System.out.printf is ok though. > >> round(3.75,1) > [1] 3.8 >> round(3.15,1) > [1] 3.1 > > Similar outcome with sprintf in R. > > > However, the right answer should be 3.2 This is not a bug. There is no way to represent 3.15 exactly in double precision, so it is hard to predict whether it will round up or down. Apparently on the machine you were using it is represented as a number slightly less than 3.15, which rounds down. Duncan Murdoch ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel