将十进制截断为指定的位置

Ste*_*eno 11 r

这似乎应该是一个相当容易解决的问题,但我在找到答案时遇到了一些麻烦.

我有一个包含长小数的向量,我想将其截断为特定的小数.我不想舍入它,而只是删除超出我想要的小数位数的值.

例如,如果我需要4位十进制数字,我希望0.123456789返回0.1234.这不是打印特定数量的数字而是将原始值截断为给定数字的问题.

谢谢.

Rob*_*ski 18

trunc(x*10^4)/10^4
Run Code Online (Sandbox Code Playgroud)

收益0.1234如预期.

更普遍,

trunc <- function(x, ..., prec = 0) base::trunc(x * 10^prec, ...) / 10^prec;
print(trunc(0.123456789, prec = 4) # 0.1234
print(trunc(14035, prec = -2), # 14000
Run Code Online (Sandbox Code Playgroud)

  • 但是:`trunc(1234567.2,prec = 5)`得到1234567。我们不想要“ 1234567.2”吗? (2认同)