不良行为-as.double将小数点四舍五入

时间:2018-07-02 12:26:05

标签: r dplyr double decimal

我有以下数据:

unpackedSize

令我惊讶的是,当我尝试将它们转换为npm view <pkg_name> dist.unpackedSize 时,小数会四舍五入为整数。

ex <- structure(list(X1 = c("0", "2912.99", "922.1", "772.9100000000001", 
"7112.97", "933.09", "1190.03")), row.names = c(NA, -7L), .Names = "X1", class = 
c("tbl_df", "tbl", "data.frame"))

我尝试使用double更改数字选项,但没有帮助。是什么导致此问题?是使用ex %>% mutate(X1 = as.double(X1)) 的问题吗?如何将其转换为options(digits = 22)

2 个答案:

答案 0 :(得分:0)

可以通过设置选项来选择打印的位数 tibble使用的pillar package中的一个。

> options(pillar.sigfig=16)
> ex %>% mutate(X1 = as.double(X1))
# A tibble: 7 x 1
                   X1
                <dbl>
1     0.             
2  2912.990000000000 
3   922.1000000000000
4   772.9100000000001
5  7112.970000000000 
6   933.0900000000000
7  1190.030000000000 

答案 1 :(得分:0)

如果要打印的小标题默认为多于3个小数,则还需要同时调整the.sigfig选项:

options(pillar.sigfig = 22)
options(digits = 22)

ex %>% mutate(X1 = as.double(X1))

                   X1
                <dbl>
1    0.00000000000000
2 2912.98999999999978
3  922.10000000000002
4  772.91000000000008
5 7112.97000000000025
6  933.09000000000003
7 1190.02999999999997