2010-12-30 21 views

cevap

0
if (Math.Abs(doubleNumber) > Math.Pow(1,-9)) //doubleNumber not zero. 
6

Sen çözme sorunun uyumlu bir epsilonu belirlemek zorunda. Ben keçe

if (!DoubleEquals(value, 0)) { /* do your not zero things */ } 

: Bir yol istediğinden beri Ardından, yazılı tarafından bu fonksiyonu kullanabilirsiniz, çift sıfır değilse belirlemek için

bool DoubleEquals(double value1, double value2) 
{ 
    return Math.Abs(value1 - value2) < epsilon; 
} 

DÜZENLEME
gibi bir şey kullanabilirsiniz Bu yöntem daha iyi çünkü daha genel bir amaç.

+0

eğer (! Double.Equals (value, 0)) bu doğru da test ettim .. – Mahantesh

3

Merhaba, ne tür hesaplamalar yaptığınıza bağlı. Bazı zamanlar 0'a yakın olan çok az sayıda alabiliriz, ancak oldukça

Genellikle

if (Math.Abs(MyNumber) < 1e-10) 

o Bu çok duble kontrol etmek yeterlidir

+0

opps. Sanırım 1e-10 benim C++ konuşmam. C# topçu dediği gibi Math.Pow (1, -10) olurdu – Leon

0

sıfır ya da değil

olduğunu yardımcı olur umarım do
 double d = 0.00000005; 
     bool l = d.Equals(0); 
İlgili konular