2010-12-30 11 views

Odpowiedz

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

Musisz ustawić epsilon, który jest kompatybilny z problemem jesteś rozwiązywania. Następnie można użyć coś jak

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

EDIT
Ponieważ poprosiłeś sposób, aby ustalić, czy podwójny nie jest zero, można użyć tej funkcji przez piśmie:

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

czułem ta metoda była lepsza, ponieważ ma bardziej ogólny cel.

+0

jeśli (! Double.Equals (wartość, 0)) to jest poprawne i przetestowałem to także .. – Mahantesh

3

Witam zależy od rodzaju wykonywanych obliczeń. Czasami masz bardzo małą liczbę, która jest blisko 0, ale nie całkiem

zwykle zrobić

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

Nadzieja pomaga

+0

opps. Myślę, że 1e-10 to moja rozmowa w C++. C# to Math.Pow (1, -10), jak powiedział Gunner – Leon

0

Tyle wystarczy, aby sprawdzić podwójnego jest zerowy lub nie

 double d = 0.00000005; 
     bool l = d.Equals(0); 
Powiązane problemy