On 6/3/08, Duncan Murdoch <[EMAIL PROTECTED]> wrote: > > It's easy to make mistakes in this, but a little outside-of-R > experimentation suggests those are the right answers. The number 12345 is > exactly representable, so it is exactly half-way between 12340 and 12350, so > 12340 is the right answer by the unbiased round-to-even rule. The number > 0.12345 is not exactly representable, but (I think) it is represented by > something slightly closer to 0.1235 than to 0.1234. So it looks as though > Windows gets it right.
Well, right within the limitations of binary floating-point arithmetic. Not right right. In the grander scheme, this is a nicety which is largely inconsequential--if I need a real measure precision (precise precision?) I'll use a +/- notation of a propagated error and/or edit the typography of the numbers by hand immediately before the final output. But again, final printed output of the number is basically the useful use I see for a function that returns significant digits. And for that purpose I think it should be right right, and actually output the number of significant digits requested. > > > signif(12345.12345,digits=10) > > [1] 12345.12 > > This is a different problem. The number is correctly computed as > 12345.12345 (or at least a representable number quite close to that), and > then the default display rounds it some more. Set options(digits=19) to see > it in its full glory. Aha, my mistake; I missed that setting. Pat Carr ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel