我需要做一個舍入這樣,並將其轉換爲一個字符:如何製作「漂亮的四捨五入」?
as.character(round(5.9999,2))
我希望它成爲6.00
,但它只是給我6
反正是有,我可以把它展6.00
?
我需要做一個舍入這樣,並將其轉換爲一個字符:如何製作「漂亮的四捨五入」?
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
),以便將其表示爲足夠的準確性,並確定只需要一位有效數字。所以這就是你得到的。
正如Dirk指出的,formatC()是另一種選擇。
formatC(x = 5.999,digits = 2,format ='f')