什么是最大的"非浮动"整数,可以存储在IEEE 754 double类型而不会丢失精度?
我有一些计算正在进行并得到以下警告(即没有错误):
Warning messages:
1: In sum(myvar, na.rm = T) :
Integer overflow - use sum(as.numeric(.))
Run Code Online (Sandbox Code Playgroud)
在这个线程中,人们声明整数溢出根本不会发生.要么R不是过于现代,要么是不对.但是,我应该在这做什么?如果我使用as.numeric警告暗示我可能不会解释信息丢失的事实.myvar从.csv文件中读取,所以不应该知道需要更大的字段吗?它已经切断了什么吗?
什么是的最大长度integer或者numeric?你会建议任何其他字段类型/模式吗?
编辑:我跑:
R版本2.13.2(2011-09-30)平台:R Studio中的x86_64-apple-darwin9.8.0/x86_64(64位)
在 R 源代码中,大多数(但不是全部)函数使用整数值作为常量:
colnames <- function(x, do.NULL = TRUE, prefix = "col")
{
if(is.data.frame(x) && do.NULL)
return(names(x))
dn <- dimnames(x)
if(!is.null(dn[[2L]]))
dn[[2L]]
else {
nc <- NCOL(x)
if(do.NULL) NULL
else if(nc > 0L) paste0(prefix, seq_len(nc))
else character()
}
}
Run Code Online (Sandbox Code Playgroud)
R语言定义说:
在大多数情况下,整数和数值之间的差异并不重要,因为 R 在使用数字时会做正确的事情。然而,有时我们想显式地为常量创建一个整数值。
问题是关于良好实践和基本原理,而不是关于“L”符号本身、整数类和数字类之间的差异或比较数字。