【发布时间】:2017-10-20 11:10:21
【问题描述】:
我在性格上有这个价值:
val <- "1e-14105"
我想做的是将它们转换为数字并保留科学记数法。所以结果只是1e-14105 作为数字。
我试过了,但失败了:
> as.numeric(val)
[1] 0
> format(as.numeric(val), scientific=TRUE)
[1] "0e+00"
正确的做法是什么?
【问题讨论】:
标签: r
我在性格上有这个价值:
val <- "1e-14105"
我想做的是将它们转换为数字并保留科学记数法。所以结果只是1e-14105 作为数字。
我试过了,但失败了:
> as.numeric(val)
[1] 0
> format(as.numeric(val), scientific=TRUE)
[1] "0e+00"
正确的做法是什么?
【问题讨论】:
标签: r
问题是浮点问题和 R 工作的准确度。 正在将 1e-14105 转换为数字,然后将其逼近为零。见The R Inferno: Circle 1, Falling into the Floating Point Trap。
> as.numeric("1e-14105")
[1] 0
> class(as.numeric("1e-14105"))
[1] "numeric"
> 1e-14105
[1] 0
【讨论】:
1e-14105 保留为数字科学格式?