当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R NumericConstants 数字常量


R语言 NumericConstants 位于 base 包(package)。

说明

如何R解析数字常量。

细节

R以与 C99 浮点常量非常相似的方式解析其输入中的数字常量。

InfNaN 是数字常量(带有 typeof(.) "double" )。在文本输入中(例如,在 scanas.double 中),这些被识别为忽略大小写,就像 infinity 作为 Inf 的替代。 NA_real_NA_integer_"double""integer" 类型的常量,表示缺失值。所有其他数字常量都以数字或句点开头,并且是十进制或十六进制常量,可选后跟 L

十六进制常量以 0x0X 开头,后跟来自 0-9 a-f A-F . 的非空序列,该序列被解释为十六进制数,可以选择后跟二进制指数。二进制指数由 Pp 组成,后跟可选的加号或减号,后跟非空(十进制)数字序列,并表示乘以 2 的幂。因此 0x123p456

十进制常量由非空数字序列组成,其中可能包含句点(小数点),后面可以选择跟随十进制指数。十进制指数由 Ee 组成,后跟可选的加号或减号,后跟非空数字序列,表示乘以 10 的幂。

太大或太小而无法表示的值将溢出到 Inf 或下溢到 0.0

紧跟i 的数字常量被视为虚数complex

如果可能的话,紧跟 L 的数字常量被视为 integer 数字(如果它包含 "." ,则会出现警告)。

即使在具有其他数字表示形式的语言中,也只有 ASCII 数字 0-9 被识别为数字。 “小数分隔符”始终是句点而不是逗号。

请注意,解析器不会将前导加号或减号视为数值常量的一部分,而是将其视为应用于该常量的一元运算符。

注意

当解析字符串以输入数字常量时,该数字可能会也可能不会完全用所使用的 C double 类型表示。如果不是,将返回最接近的可表示数字之一。

R自己的 C 代码用于将常量转换为二进制数,因此在所有实现完整 IEC 600559 算术的平台上,效果预计是相同的(最可能的差异是处理小于.Machine$double.xmin)。使用相同的代码scan.

例子

## You can create numbers using fixed or scientific formatting.
2.1
2.1e10
-2.1E-10

## The resulting objects have class numeric and type double.
class(2.1)
typeof(2.1)

## This holds even if what you typed looked like an integer.
class(2)
typeof(2)

## If you actually wanted integers, use an "L" suffix.
class(2L)
typeof(2L)

## These are equal but not identical
2 == 2L
identical(2, 2L)

## You can write numbers between 0 and 1 without a leading "0"
## (but typically this makes code harder to read)
.1234

sqrt(1i) # remember elementary math?
utils::str(0xA0)
identical(1L, as.integer(1))

## You can combine the "0x" prefix with the "L" suffix :
identical(0xFL, as.integer(15))

也可以看看

Syntax。对于复数,请参见complex.Quotes对于字符常量的解析,Reserved对于“reserved words”R.

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Numeric Constants。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。