NumericConstants {base} | R Documentation |

## Numeric Constants

### Description

How **R** parses numeric constants.

### Details

**R** parses numeric constants in its input in a very similar way to C
floating-point constants.

`Inf`

and `NaN`

are numeric constants (with
`typeof(.) "double"`

). All other numeric constants start
with a digit or period.

Hexadecimal constants start with `0x`

or `0X`

followed by
a non-empty sequence from `0-9 a-f A-F`

which is interpreted as a
hexadecimal number (`"double"`

, not `"integer"`

).

Decimal constants consists of a nonempty sequence of digits possibly
containing a period (the decimal point), optionally followed by a
decimal exponent. A decimal exponent consists of an `E`

or
`e`

followed by an optional plus or minus sign followed by a
non-empty sequence of digits, and indicates multiplication by a power
of ten.

A numeric constant immediately followed by `i`

is regarded as an
imaginary complex number.

An numeric constant immediately followed by `L`

is regarded as an
`integer`

number when possible (and with a warning if it
contains a `"."`

).

Only the ASCII digits 0–9 are recognized as digits, even in languages
which have other representations of digits.
The ‘decimal separator’ is always a period and never a comma.

Note that a leading plus or minus is not part of numeric constant but
a unary operator applied to the constant.

### See Also

`Syntax`

.

`Quotes`

for the parsing of character constants,

### Examples

2.1
typeof(2)
sqrt(1i) # remember elementary math?
str(0xA0)
identical(1L, as.integer(1))
## You can combine the "0x" prefix with the "L" suffix :
identical(0xFL, as.integer(15)) # (with a regard to Fritz :-)

[Package

*base* version 2.5.0

Index]