C# – 浮點數的相等(Equals)

不管在哪個語言,浮點數都不能直接使用「==」
印象中是要追朔到2進位的資料上的組成吧~?
無論如何,C#有提供一個常數可供使用…

Single.Equals 方法 (Object)
這裡有提到直接使用 Equals 或是 == 的狀況。

Single.Epsilon 欄位
就是代表一個最小、且大於零的數值,這個常數的值為 1.4e-45。
這個值的準確度,基本上會比上面建議擇其一的 0.01% 做為比對值來得高。
重點是不用再多宣告一個XDD

用法很簡單~

 float value1 = 123.456f;
 float value2 = 123.456f;
 if ( value1 value2 < float.Epsilon )
 {
     // 當value1約等於value2時要做的事情
 }


當然,你也可以直接使用 0.0000000001 去比對,也是OK的

–End

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s