如何判断R正确舍入?
R中的小数位数 我遇到了一个问题,我无法弄清楚如何解决 我希望R计算5/26 * 100 = 19.230769
x <- 5/26*100
x
给了我:
[1] 19.23077
让我们尝试使用round(),首先将数字设置为4:
x <- round(5/26*100,digits=4)
x
给出:
[1] 19.2308
接下来,让我们将数字设置为5:
x <- round(5/26*100,digits=5)
x
给出:
[1] 19.23077
现在,让我们将数字设置为6:
x <- round(5/26*100,digits=6)
x
给出:
[1] 19.23077
谁能告诉我如何解决这个问题?你得到的结果是否相同,或者你的rstudio圆正确吗?
我也累了signif()
x <- signif(5/26*100,digits=6)
x
给我们:
[1] 19.2308
增加到7位:
> x <- signif(5/26*100,digits=7)
> x
[1] 19.23077
增加到8位:
> x <- signif(5/26*100,digits=8)
> x
[1] 19.23077
我们可以使用sprintf()
> x <- sprintf("%0.6f", (5/26*100))
> x
[1] "19.230769"
sprintf()解决了舍入问题,但是通过将数值更改为字符会产生新问题。
有人能告诉我如何让r给我5/26 * 100 = 19.230769带数字输出吗?
谢谢,
德鲁
答案 0 :(得分:4)
问题是默认情况下,R只会输出7位数字。请参阅帮助页?getOption
并搜索“数字”。
您可以通过更改设置以允许更多数字来更改此设置。
options(digits=13)
round(5/26*100,digits=6)
[1] 19.230769
round(5/26*100,digits=7)
[1] 19.2307692
round(5/26*100,digits=8)
[1] 19.23076923
答案 1 :(得分:1)
round
函数执行计算并根据分配给digits
函数的round
参数返回有效数字。但digits
选项的global
设置控制您在命令行输出中看到的内容。
您可以使用digits
修改options
值,也可以尝试转换为as.character
以查看所需的输出。
digits
中我当前的options
设置5
仍然低于计算效果。
Example:
> as.character(round(5/26*100, 6))
[1] "19.230769"
> as.character(round(5/26*100, 7))
[1] "19.2307692"