R: Rounding of Numbers

Round {base} | R Documentation

## Rounding of Numbers

### Description

`ceiling` takes a single numeric argument `x` and returns a numeric vector containing the smallest integers not less than the corresponding elements of `x`.

`floor` takes a single numeric argument `x` and returns a numeric vector containing the largest integers not greater than the corresponding elements of `x`.

`round` rounds the values in its first argument to the specified number of decimal places (default 0). Note that for rounding off a 5, the IEEE standard is used, ``go to the even digit''. Therefore `round(0.5)` is `0` and `round(-1.5)` is `-2`.

`signif` rounds the values in its first argument to the specified number of significant digits.

`trunc` takes a single numeric argument `x` and returns a numeric vector containing the integers by truncating the values in `x` toward `0`.

`zapsmall` determines a `digits` argument `dr` for calling `round(x, digits = dr)` such that values ``close to zero'' values are ``zapped'', i.e., treated as `0`.

### Usage

    ceiling(x)
    floor(x)
    round(x, digits = 0)
    signif(x, digits = 6)
    trunc(x)
    zapsmall(x, digits= getOption("digits"))

### Arguments

`x` | a numeric vector.
`digits` | integer indicating the precision to be used.

### See Also

`as.integer`.

### Examples

    round(.5 + -2:4) # IEEE rounding: -2  0  0  2  2  4  4
    ( x1 <- seq(-2, 4, by = .5) )
    round(x1)#-- IEEE rounding !
    x1[trunc(x1) != floor(x1)]
    x1[round(x1) != floor(x1 + .5)]
    (non.int <- ceiling(x1) != floor(x1))
    stopifnot(
     trunc(x1) == as.integer(x1),
     non.int == (ceiling(x1) != trunc(x1) | trunc(x1) != floor(x1)),
     (signif(x1, 1) != round(x1,1)) == (non.int & abs(x1) > 1)
    )

    x2 <- pi * 100^(-1:3)
    round(x2, 3)
    signif(x2, 3)

    print   (x2 / 1000, digits=4)
    zapsmall(x2 / 1000, digits=4)
    zapsmall(exp(1i*0:4*pi/2))

[Package Contents]