我想在样本中获取所有不同的浮点值:
unique(c(0.100000000002, 0.100000000003))
但这仅返回0.1
两次,这不是唯一值:
[1] 0.1 0.1
如何列出保存的确切值?
答案 0 :(得分:5)
使用sprintf
...
x <- unique(c(0.100000000002, 0.100000000003))
sprintf("%.20f", x)
#[1] "0.10000000000200000294" "0.10000000000299999470"
来自sprintf
的{{3}} ...
˚F
双精度值,在“定点”十进制表示法中 表格“[ - ] mmm.ddd”。小数位数(“d”)由指定 精度:默认为6;精度为0会抑制 小数点。非有限值转换为NA,NaN或(可能是 一个标志,然后是)Inf。
答案 1 :(得分:5)
这只是R的7个有效数字的默认打印限制。要查看真正的基础值:
print(unique(c(0.100000000002, 0.100000000003), digits=15)
要更改默认行为,请参阅?options
;你想要options(digits=15)
之类的东西。
答案 2 :(得分:2)
你去吧
options(digits=14)
unique(c(0.100000000002, 0.100000000003))