2010-08-16 48 views

回答

10

嘗試的兩者之一:

> 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()

2

爲了幫助解釋這是怎麼回事 - 在round(5.9999, 2)呼叫舍入您的號碼最近的百位,它給你的(不是字符串)非常接近(或恰好等於,如果您有浮動幸運點表示)6.00。然後as.character()查看這個數字,最多可以得到15位有效數字(見?as.character),以便將其表示爲足夠的準確性,並確定只需要一位有效數字。所以這就是你得到的。

-1

正如Dirk指出的,formatC()是另一種選擇。

formatC(x = 5.999,digits = 2,format ='f')