On 6/3/08, Duncan Murdoch <[EMAIL PROTECTED]> wrote: > > because signif(0.90, digits=2) == 0.9. Those two objects are identical.
My text above that is poorly worded. They're identical internally, yes. But in terms of the number of significant digits, 0.9 and 0.90 are different. And that matters when the number is printed, say as an annotation on a graph. Passing it through sprintf() or format() later requires you to specify the number of digits after the decimal, which is different than the number of significant digits, and requires case testing for numbers of different orders of magnitude. The original complainant (and I) expected this behavior from signif(), not merely rounding. As I said before, I wrote my own workaround so this is somewhat academic, but I don't think we're alone. > As far as I know, rounding is fine in Windows: > > > round(1:10 + 0.5) > [1] 2 2 4 4 6 6 8 8 10 10 > It might not be the rounding, then. (windows xp sp3) > signif(12345,digits=4) [1] 12340 > signif(0.12345,digits=4) [1] 0.1235 OS X (10.5.2/intel) does not have that problem. But (on both windows and OS X): > signif(12345.12345,digits=10) [1] 12345.12 Pat Carr ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel