我在R中寫了一個函數,它要求我將計數器增加0.05。當我對櫃檯的價值進行調整時,我被告知價值不是它的表現。用十進制值遞增的R不返回期望值
實施例:
設置計數爲0
CNTR < - 0; CNTR;
[1] 0
由0.05和測試增量計數器
CNTR < - CNTR + 0.05; CNTR; [1] 0.05
> cntr == 0.05
[1] TRUE
到目前爲止,那麼好。但一對夫婦更次迭代後會發生以下情況:
> cntr <- cntr + 0.05; cntr;
[1] 0.1
> cntr == 0.1
[1] TRUE
> cntr <- cntr + 0.05; cntr;
[1] 0.15
> cntr == 0.15
[1] FALSE
發生了什麼,爲什麼?爲cntr返回的值是0.15,但不等於此值? 進一步調查發現這一點:
> cntr < 0.1500000000000001
[1] TRUE
> cntr < 0.15000000000000001
[1] FALSE
和
輪(CNTR,2)== 0.15 [1] TRUE
我誤解的東西,或者是有什麼我我沒有看到?任何幫助將不勝感激。謝謝。
這是[FAQ 7.31](http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-these-numbers-are-equal_003f)。 –