2011-04-04 178 views
3

可能重複:
how to make 「pretty rounding」 in R?四捨五入數字

我有一個數字,說1.036315,我想它送到首創小數點後一位,這樣的結果是1.0,它不應該是1,因爲我還想聲明近似值精確到小數點後第一位。

但是,當我使用round(1.036315, digits=1),R給我1,這是我不想要的東西。

任何方式讓R來呈現我想要的東西?

+5

的_Exact_重複[如何使 「漂亮四捨五入」 在R'(http://stackoverflow.com/questions/3490196 /如何對化妝漂亮的舍入式-R)。你問了同樣的問題〜6個月前使用相同的標籤。請使用搜索功能。 – 2011-04-04 04:08:30

回答

5
sprintf("%.1f",1.036315) 

應該做的伎倆。

+0

將formatC也做詭計? formatC(1.036315,digits = 1,format =「f」) – lokheart 2011-04-04 02:02:49

+0

是的,要麼應該沒問題。 – 2011-04-04 02:07:05

+0

我不認爲sprintf輪,它只是截斷。 – 2011-04-04 04:19:07

0

在呼叫round()之前,您可以計算整數位數。
count = 0;
n = myNum;
while(n>=10){
n/=10;
count++;}
return round(myNum, digits=(count+1));

3

試試這個:

format(round(1.036315, 1), nsmall = 1). 

其他功能sprintfformatC