2012-12-25 45 views
1
的總和

可能重複:
Is JavaScript’s Floating-Point Math Broken?預測兩個雙打

這將是一個非常基本的COMP-SCI的問題。考慮下面的C#(對於JS也是如此,我認爲這是數學如何與雙打一起工作)。

var i = .01; 
i+=.01; //i=.02 
i+=.01; //i=.03 
i+=.01; //i=.04 
i+=.01; //i=.05 
i+=.01; //i=.0600000000005 (I may have added/missed a few 0s in there) 
i+=.01; //i=.07 
i+=.01; //i=.08 
i+=.01; //i=.09 
i+=.01; //i=.0999999999992 (I may have added/missed a few 9s in there) 

那麼,發生了什麼事情,我該如何準確預測i + .01的總和呢?

+2

閱讀此內容,看看它是否有幫助:http://csharpindepth.com/Articles/General/FloatingPoint.aspx –

+2

你真的想要解決什麼問題?如果低意義數字的十進制值對您來說很重要,您不應該首先使用「double」。使用'decimal'或類似的結構。 – CodesInChaos

+0

@CodesInChaos我的目標是獲得0到x之間的每隔一百分之一的間隔。我通過做一些分工來解決它,但我想了解數學如何與雙打一起工作。 JonSkeet,現在看看。謝謝。 – Billdr

回答