2010-12-30 9 views

Antwort

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

Sie haben ein epsilon zu setzen, die mit dem Problem, das Sie lösen kompatibel ist. Dann könnten Sie so etwas wie

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

EDIT
verwenden Da Sie einen Weg gefragt, um zu bestimmen, ob ein Doppel nicht Null ist, können Sie diese Funktion durch Schreiben verwenden:

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

Ich fühlte Diese Methode war besser, weil es allgemeiner ist.

+0

if (! Double.Equals (Wert, 0)) das ist richtig ich es auch getestet .. – Mahantesh

3

Hallo hängt davon ab, welche Art von Berechnungen Sie tun. Einige Male erhalten Sie eine sehr kleine Zahl, die nahe bei 0 ist aber nicht ganz

ich normalerweise

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

Hoffe, es hilft

+0

Upps. Ich denke 1e-10 ist mein C++ Sprechen. C# wäre Math.Pow (1, -10), wie Gunner sagte – Leon

0

So viel ist genug, um das doppelte zu überprüfen Null ist oder nicht

 double d = 0.00000005; 
     bool l = d.Equals(0); 
Verwandte Themen