问题描述
嗨,我想问一个与这篇文章中提出的问题相关的问题。 很抱歉重新发布相同的问题,但我无法发表评论。
基本上,我尝试使用此链接中提供的公式以及看门人功能来进行四舍五入。
但似乎对于某些数字,我的舍入没有正确进行。
这是我正在使用的功能。
变体 1:
specify_decimal <- function(x,k) trimws(format(round_half_up(x,k),nsmall=k))
变体 2:
specify_decimal <- function(x,k) trimws(format(round2(x,nsmall=k))
round2 = function(x,n) {
posneg = sign(x)
z = abs(x)*10^n
z = z + 0.5 + sqrt(.Machine$double.eps)
z = trunc(z)
z = z/10^n
z*posneg
}
代码:specify_decimal(data,4)
数据 | 预期结果 | 实际结果 |
---|---|---|
205622666.19065 | 205622666.1907 | 205622666.1906 |
410498564.18375 | 410498564.1838 | 410498564.1837 |
79625403.62595 | 79625403.6260 | 79625403.6259 |
4704482.76615 | 4704482.7662 | 4704482.7661 |
54681256.56625 | 54681256.5663 | 54681256.5662 |
我正在尝试将我的数字格式化为特定的小数位(在本例中为 4 dp),如果第 5 位小数是 5,我想四舍五入,对于大多数数字,这个公式似乎工作正常,但我我不太确定为什么它似乎对这几个数字不起作用。
非常感谢您的建议。
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)