R语言中使用trunc()函数未返回预期值的问题咨询
R语言中trunc(pi,3)返回3而非3.141的原因
你误解了trunc()函数的参数作用,它的第二个参数并非用来指定保留的小数位数。
trunc()函数的核心作用是截断数值的部分内容,默认行为是直接去掉小数部分,只保留整数,比如trunc(pi)会返回3。- 它的可选第二个参数
base是用来指定截断的基数,而非小数位数。当你执行trunc(a, 3)时,实际是让R把pi截断到最接近的3的整数倍——因为pi≈3.141,介于3和6之间,所以最终返回3。
如果想要实现保留3位小数并截断的效果,应该用如下方式:
trunc(pi * 1000) / 1000 # 输出:[1] 3.141
另外补充几个容易混淆的函数用法:
round(pi, 3):对3位小数进行四舍五入,返回3.142floor(pi * 1000) / 1000:对正数效果和上述截断方法一致,返回3.141
内容的提问来源于stack exchange,提问作者Midhun Krishna
相关产品推荐
相关产品推荐

