2011-11-29 9 views
19

Sto facendo una semplice calcolatrice per questo compito, e Java sta tornando "Infinity" quando diviso per 0.Controllare se una doppia è infinito in Java

ho bisogno di visualizzare qualche messaggio di errore, quando torno a infinito . Il problema è che non so come fare la condizione

double result; 
result = 4/0; 
//if result == infinity then some message - need help with this 
+1

cattura [' ArithmeticException'] (http://docs.oracle.com/javase/1.4.2/docs/api/java/lang /ArithmeticException.html) controlla se il divisore è zero. mostra un messaggio di errore. – Nishant

+0

C'è una ragione per cui vuoi ottenere l'infinito invece di fermare la divisione in primo luogo? – Toomai

+0

4/0 è Infinity per java :) –

risposta

37

È possibile utilizzare Double.isInfinite (doppia)

Ecco double doc

+0

che farà, grazie. accetta in 2 minuti :) –

1

Si prega di vedere se è uguale a Double.POSITIVE_INFINITY

double result; 
result = 4.0/0.0; 
+0

Credo, questo è quello che non vuole. Vuole vedere un errore. –

+0

Sì, forse .... – gd1

1

ci sono due campi per l'infinito nella classe Double: POSITIVE_INFINITY e NEGATIVE_INFINITY che puoi controllare.

noti che divisione intera per zero getterebbe un ArithmeticException così la linea avrebbe dovuto essere 4.0/0, 4/0.0 o 4.0/0.0 dal 4 e 0 sono interi e quindi provocare la matematica intero.

5

Il codice precedente produce

ArithmeticException:/by zero 

si può prendere questa eccezione in un blocco try/catch.

-1

Questo tipo di errori sono chiamati eccezioni. Puoi utilizzare il blocco try-catch per catturare questa eccezione.

try{ 
     result = 4/0; 
} 
catch(ArithmeticException e){ 
    System.out.println("You divided by zero"); 
} 

è possibile leggere sulla gestione delle eccezioni here.

+0

Si prega di non rilevare eccezioni generiche se stai cercando solo uno specializzato. – Bobby

+0

Ancora meglio, non prendere le eccezioni quando un semplice test farebbe meglio. – giusti

0

Jacek Aprile provare questo codice

double result; 
try{ 
    result=4.0/0.0; 
}catch(ArithmeticException e){ 

    System.out.println("Math error "+ e.getMessage()) 
} 

`

Problemi correlati