dan*_*dan 3 r significant-digits
我numeric喜欢这个:
a <- -1.542045
Run Code Online (Sandbox Code Playgroud)
我想将它们向下舍入(或向上舍入abs)到小数点后的2位数.
signif(a,3)将它向下舍入并给我1.54作为结果但是对于这个例子我想要的结果是-1.55.
任何的想法?
李哲源*_*李哲源 14
我想你在找floor(a * 100) / 100.
快速测试
a <- c(-1.542045, 1.542045)
floor(a * 100) / 100
# [1] -1.55 1.54
Run Code Online (Sandbox Code Playgroud)
我刚注意到你在7小时前改变了你的问题.然后我的答案并没有完全符合你的要求(因为我假设通过"四舍五入"你总是想要向前舍去-Inf).但我在第一版的答案中已经讨论过这一点.现在我要在这里复制相关内容.
sign(a) * ceiling(abs(a) * 100) / 100你可以向轮的数据Inf为正值和-Inf负值.sign(a) * floor(abs(a) * 100) / 100,您将正值和负值都舍入为0.快速测试
a <- c(-1.542045, 1.542045)
sign(a) * ceiling(abs(a) * 100) / 100
# [1] -1.55 1.55
sign(a) * floor(abs(a) * 100) / 100
# [1] -1.54 1.54
Run Code Online (Sandbox Code Playgroud)