我需要进行四舍五入,并将其转换为字符格式:
as.character(round(5.9999,2))
我期望它显示为6.00
,但它只显示6
有没有办法让它显示6.00
?
尝试使用以下任意一种方法:
> sprintf("%3.2f", round(5.9999, digits=2))
[1] "6.00
> sprintf("%3.2f", 5.999) # no round needed either
[1] "6.00
还有formatC()
和prettyNum()
。
round(5.9999, 2)
函数将你的数字四舍五入到最近的百分位,得出一个非常接近于(或者是由于浮点数表示的运气好而恰好等于)6.00的数字(而不是字符串)。然后as.character()
函数查看该数字,取其15个有效数字(请参阅?as.character
),以便对其进行足够精确的表示,并确定仅需要1个有效数字。因此你得到的结果就是这样的。