2010-12-30 16 views

risposta

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

è necessario impostare un epsilon che è compatibile con il problema si sta risolvendo. Quindi, si potrebbe usare qualcosa come

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

EDIT
Dal momento che lei ha chiesto un modo per determinare se un doppio non è pari a zero, è possibile utilizzare questa funzione scrivendo:

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

Sentivo questo metodo era migliore perché ha uno scopo più generale.

+0

se (! Double.Equals (valore, 0)) questo è corretto l'ho provato anche .. – Mahantesh

3

Hi dipende da che tipo di calcoli si sta facendo. Alcune volte si ottiene un numero molto piccolo che è vicino a 0, ma non del tutto

faccio di solito

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

Speranza che aiuta

+0

opps. penso che 1e-10 sia il mio parlare in C++. C# sarebbe Math.Pow (1, -10) come ha detto Gunner – Leon

0

Una cosa è sufficiente per controllare il doppio è zero o non

 double d = 0.00000005; 
     bool l = d.Equals(0); 
Problemi correlati