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.
  trunc takes a single numeric argument x and returns a
  numeric vector containing the integers formed by truncating the values in
  x toward 0.
  round rounds the values in its first argument to the specified
  number of decimal places (default 0).
  signif rounds the values in its first argument to the specified
  number of significant digits.
ceiling(x)
floor(x)
trunc(x, ...)
round(x, digits = 0)
signif(x, digits = 6)round and signif, a
    complex vector.round) or significant digits (signif) to be used.
    Negative values are allowed (see Details).ceiling, floor and trunc are members of the
  Math group generic.  As an S4
  generic, trunc has only one argument. round and signif are members of the
  Math2 group generic.floor and ceiling.  For example, we
  know that floor(log(x, base = 8)) for x = 8 is
  1, but 0 has been seen on an R platform.  It is
  normally necessary to use a tolerance.Math group
  generic.  Note that for rounding off a 5, the IEC 60559 standard is expected to
  be used, go to the even digit.
  Therefore round(0.5) is 0 and round(-1.5) is
  -2.  However, this is dependent on OS services and on
  representation error (since e.g.\ifelse{latex}{\out{~}}{ } 0.15 is not represented
  exactly, the rounding rule applies to the represented number and not
  to the printed number, and so round(0.15, 1) could be either
  0.1 or 0.2).
  Rounding to a negative number of digits means rounding to a power of
  ten, so for example round(x, digits = -2) rounds to the nearest
  hundred.
  For signif the recognized values of digits are
  1...22, and non-missing values are rounded to the nearest
  integer in that range.  Complex numbers are rounded to retain the
  specified number of digits in the larger of the components.  Each
  element of the vector is rounded individually, unlike printing.
These are all primitive functions.
as.integer.
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))
x2 <- pi * 100^(-1:3)
round(x2, 3)
signif(x2, 3)
Run the code above in your browser using DataLab