我希望得到一个样品中所有不同的浮点值:获取R中花车的精确值?
unique(c(0.100000000002, 0.100000000003))
但这仅返回哪些不是唯一值的两倍0.1
:
[1] 0.1 0.1
我如何可以列出确切值得救了吗?
我希望得到一个样品中所有不同的浮点值:获取R中花车的精确值?
unique(c(0.100000000002, 0.100000000003))
但这仅返回哪些不是唯一值的两倍0.1
:
[1] 0.1 0.1
我如何可以列出确切值得救了吗?
这只是R的7个有效数字的默认打印限制。要看到真实的基本价值:
print(unique(c(0.100000000002, 0.100000000003), digits=15)
要更改默认行为,请参阅?options
;你想要的东西像options(digits=15)
。
使用sprintf
...
x <- unique(c(0.100000000002, 0.100000000003))
sprintf("%.20f", x)
#[1] "0.10000000000200000294" "0.10000000000299999470"
从help page为sprintf
...
˚F
双精度值,在“定点”的 形式的十进制表示“[ - ] mmm.ddd”。小数位数(“d”)由 指定精度:默认值为6;精度为0时会抑制小数点的位置。非有限值被转换为NA,NaN或(可能是符号后跟Inf)。
在这里你去
options(digits=14)
unique(c(0.100000000002, 0.100000000003))
这是一样的@HongOoi的答案,因此重复的信息。 –
是的。对不起。在发布之前我没有阅读他的回答。 – Avinash