首页 > 解决方案 > 修复 r sum() 自动删除小数字 .05

问题描述

我有一个问题,当我使用 R sum() 函数时, sum() 会自动删除小的数字,例如总共 0.05。

对于如何解决这个问题,有任何的建议吗?最初我使用 dplyr summarise(sum()) 函数。我发现了问题

dfexl %>% 
  filter(Text=='Totalt') %>%
  summarise( number_of_total = n(),
             grundbook_total = sum(Konto, na.rm = T))

最简单的版本是

sum(22068.00, 144501.00,  71153.00,  26193.05,  10395.00 , 80619.00)

它将输出: 354929 而不是 354929.05

有什么建议吗?

我什至使用以下两种方法,无法修复

dfexl %>% 
  filter(Text=='Totalt') %>%
  summarise( number_of_total = n(),
             grundbook_total = round(sum(Konto * 100, na.rm = T)/100,4))

如果我使用 grundbook_total*100,那么我可以看到 35492905。

options(digits=4)

谢谢!

标签: rsumdigits

解决方案


我相信这只是一个打印输出问题;如果要增加打印输出中的有效位数,可以尝试:

sprintf("%.2f",sum(22068.00, 144501.00,  71153.00,  26193.05,  10395.00 , 80619.00))
# [1] "354929.05"

要更改位数,只需更改第一个参数中的数字,即:

sprintf("%.10f",sum(22068.00, 144501.00,  71153.00,  26193.05,  10395.00 , 80619.00))
#[1] "354929.0500000000"

推荐阅读