Re: [Rd] round(#, digits=x) unreliable for x=2 (PR#9682)

From: Duncan Murdoch <murdoch_at_stats.uwo.ca>
Date: Mon, 14 May 2007 06:44:45 -0400

On 13/05/2007 8:46 PM, scott.wilkinson_at_csiro.au wrote:
> Full_Name: Scott Wilkinson
> Version: 2.3.1
> OS: WinXP Pro
> Submission from: (NULL) (140.253.203.4)
>
>
> In the example below round() does not report to the specified number of digits
> when the last digit to be reported is zero: Compare behaviour for 0.897575 and
> 0.946251. Ditto for signif(). The number of sigfigs is ambiguous unless the
> reader knows this behaviour. Is this a bug or intended behaviour? Is there a
> work-around?

It's not a bug. It has nothing to do with round(), it is the way R prints numbers by default. If you ask to print 0.90, you'll get

[1] 0.9

because 0.9 and 0.90 are the same number. If you want trailing zeros to print, you need to specify a format to do that, e.g.

 > noquote(format(0.9, nsmall=2))
[1] 0.90

The noquote stops the "" from printing. You could also use sprintf() or formatC() for more C-like format specifications.

Duncan Murdoch



R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Mon 14 May 2007 - 10:54:16 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Mon 14 May 2007 - 12:33:20 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.