2010-07-14 15 views
0

我剛剛讀了this nice answer given on how to compare floating-point values for equality。以下(由我略作修改)建議,而不是直接的比較,以0:測試浮點值是否相等:是否有「精度」常量的標準名稱?

const double epsilon = 1e-5; 

double d = ...; 
if (Math.Abs(d) < epsilon) 
{ 
    // d is considered equal to 0. 
} 

我的問題是關於可變epsilon1)的名稱。 「epsilon」是指定浮點數精度的通用名稱嗎?(&hellip;這是哪個被認爲是不同數字的任何兩個值之間的最小鑑別差異)?

由於上述代碼由於其簡單性而始終易於理解,因此這看起來似乎無關緊要。但是我經常偶然發現這個命名問題,並希望一勞永逸地知道如何命名這個精度常數,並且有利於讓讀者閱讀我的代碼的人知道它的意圖。

1)我知道,小量(ε短,或È)經常被用於指定偏差或誤差,例如在統計學中(迴歸分析)。

+0

剛剛發現了維基百科文章[機器epsilon](http://en.wikipedia.org/wiki/Machine_epsilon)併發布了[後續問題](http://stackoverflow.com/questions/3281237) /是最使用-的機基-ε-適當換浮點平等檢驗)。 – stakx 2010-07-19 13:14:22

回答

0

如果你是一個數學家,epsilon是一個很好的名字 - 無關緊要如果你是一個冗長的普通人,那麼小數值會更好。 :)

+1

也就是說,我可能會自己使用epsilon! – 2010-07-14 23:49:19

+1

從[machine epsilon](http://en.wikipedia.org/wiki/Machine_epsilon)派生的術語「epsilon」在數字代碼中是無處不在的,並且被完全理解。 「微不足道的小值」只是令人討厭。 :) – user4815162342 2012-09-22 08:56:22

相關問題