

   RRoouunnddiinngg ooff NNuummbbeerrss

        ceiling(x)
        floor(x)
        round(x, digits = 0)
        signif(x, digits)
        trunc(x)

   DDeessccrriippttiioonn::

        `ceiling' takes a single numeric argument `x' and
        returns a numeric vector containing the smallest inte-
        gers 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'.

   SSeeee AAllssoo::

        `as.integer'.

   EExxaammpplleess::

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

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

