我有一個數字,說1.036315
,我想它送到首創小數點後一位,這樣的結果是1.0
,它不應該是1
,因爲我還想聲明近似值精確到小數點後第一位。
但是,當我使用round(1.036315, digits=1)
,R給我1
,這是我不想要的東西。
任何方式讓R來呈現我想要的東西?
我有一個數字,說1.036315
,我想它送到首創小數點後一位,這樣的結果是1.0
,它不應該是1
,因爲我還想聲明近似值精確到小數點後第一位。
但是,當我使用round(1.036315, digits=1)
,R給我1
,這是我不想要的東西。
任何方式讓R來呈現我想要的東西?
sprintf("%.1f",1.036315)
應該做的伎倆。
將formatC也做詭計? formatC(1.036315,digits = 1,format =「f」) – lokheart 2011-04-04 02:02:49
是的,要麼應該沒問題。 – 2011-04-04 02:07:05
我不認爲sprintf輪,它只是截斷。 – 2011-04-04 04:19:07
在呼叫round()之前,您可以計算整數位數。 count = 0;
n = myNum;
while(n>=10){
n/=10;
count++;}
return round(myNum, digits=(count+1));
試試這個:
format(round(1.036315, 1), nsmall = 1).
其他功能sprintf
和formatC
的_Exact_重複[如何使 「漂亮四捨五入」 在R'(http://stackoverflow.com/questions/3490196 /如何對化妝漂亮的舍入式-R)。你問了同樣的問題〜6個月前使用相同的標籤。請使用搜索功能。 – 2011-04-04 04:08:30