double(length = 0)
as.double(x, ...)
is.double(x)
single(length = 0)
as.single(x, ...)NaN (many of them), plus and minus infinity and plus and
minus zero (although R acts as if these are the same). There are
also denormal(ized) (or subnormal) numbers with absolute
values above or below the range given above but represented to less
precision. See .Machine for precise information on these limits.
Note that ultimately how double precision numbers are handled is down
to the CPU/FPU and compiler. In IEEE 754-2008/IEC60559:2011 this is called binary64 format.double and numeric
(and formerly had real). double is the name of the type.
numeric is the name of the mode and also of the implicit
class. As an S4 formal class, use "numeric". The potential confusion is that R has used mode
"numeric" to mean double or integer, which conflicts
with the S4 usage. Thus is.numeric tests the mode, not the
class, but as.numeric (which is identical to as.double)
coerces to the class.double creates a double-precision vector of the specified
length. The elements of the vector are all equal to 0.
It is identical to numeric. as.double is a generic function. It is identical to
as.numeric. Methods should return an object of base type
"double".
is.double is a test of double type.
R has no single precision data type. All real numbers are
stored in double precision format. The functions as.single
and single are identical to as.double and double
except they set the attribute Csingle that is used in the
.C and .Fortran interface, and they are
intended only to be used in that context.
https://en.wikipedia.org/wiki/IEEE_754-1985, https://en.wikipedia.org/wiki/IEEE_754-2008, https://en.wikipedia.org/wiki/Double_precision, https://en.wikipedia.org/wiki/Denormal_number.
http://grouper.ieee.org/groups/754/ for links to information on the standards.
integer, numeric, storage.mode.
is.double(1)
all(double(3) == 0)
Run the code above in your browser using DataLab