2011-08-03 168 views
4

讓我們做一些四捨五入sprintf的四捨五入

> round(-0.001, 2) 
[1] 0 

我收到零後加負號至零。

現在與sprintf的組合

> sprintf("%f", round(-0.001,2)) 
[1] "-0.000000" 

爲什麼會出現一個減號?我期望0.000000

$R --version 
R version 2.13.1 (2011-07-08) 
+6

如果您不喜歡該行爲,只需添加:'sprintf(「%f」,round(-0.001,2)+ 0)'。 –

+0

太棒了!這是解決這個問題的簡單方法。 – woobert

回答

8

這是浮點數(IEEE 754)的性質,存在定義的-0。請參閱-0

+0

感謝您的回答!今天學到了一些東西...... – woobert