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

scott.wilkinson at csiro.au scott.wilkinson at csiro.au
Mon May 14 02:46:45 CEST 2007

Full_Name: Scott Wilkinson
Version: 2.3.1
OS: WinXP Pro
Submission from: (NULL) (

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

#Example code:
number <- 0.897575 # this one isn't reported to 2 decimal places 0.90 as
#number <- 0.946251 # when the last reported digit is non-zero it gives expected
Round3 <- round(number, digits=3)
Round2 <- round(number, digits=2)       #why 0.9 and not 0.90 for 0.897575?
Round1 <- round(number, digits=1)

Signif3 <- signif(number, digits=3)
Signif2 <- signif(number, digits=2)    #why 0.9 and not 0.90 0.897575?
Signif1 <- signif(number, digits=1)

Results <- data.frame(Round3, Round2, Round1, Signif3, Signif2, Signif1)

More information about the R-devel mailing list