當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。