2014-02-10 60 views
0

我最近遇到了一些與R相關的奇怪事情。它不能寫總和(即使是簡單的),我尋找任何精度問題,但它似乎並不是問題所在。R得到錯誤的結果總和

任何想法可能導致什麼?

> 0.1+0.2-0.4 

返回

> [1] -0.099999999999999977796 

回答

1

這將關閉作爲解釋正在發生的事情的重複的問題的答案。但對於一個快速的小事情,希望這有助於:

> options(digits = 22) 
> .1 + .2 - 0.4 
[1] -0.09999999999999997779554 
> 0.1 
[1] 0.1000000000000000055511 
> 0.2 
[1] 0.2000000000000000111022 
> 0.4 
[1] 0.4000000000000000222045 

你不能在計算機上完美地表示0.1。它適用於二進制,因此只有2的冪可以十進制形式完美表示。一些更多的例子:

> 1/2^2 
[1] 0.25 
> 1/2^3 
[1] 0.125 
> 1/2^4 
[1] 0.0625 
> 1/3 
[1] 0.3333333333333333148296 
+0

謝謝你的快速回答,爲重複道歉,我在其他頁面找不到答案。再次感謝 ! 乾杯 – Romain