2011-11-29 8 views
19

estoy haciendo una simple calculadora para esta tarea, y Java está volviendo "infinito" cuando se divide por 0.Comprobar si un doble es infinita en Java

que necesito para mostrar algunos mensaje de error, cuando llegue el infinito . El problema es que no sé cómo hacer la condición

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

capturas [' ArithmeticException'] (http://docs.oracle.com/javase/1.4.2/docs/api/java/lang /ArithmeticException.html) comprueba si el divisor es cero. muestra un mensaje de error – Nishant

+0

¿Hay alguna razón por la que desee obtener el infinito en lugar de simplemente detener la división en primer lugar? – Toomai

+0

4/0 es Infinity for java :) –

Respuesta

37

Puede utilizar Double.isInfinite (doble)

Aquí es double doc

+0

que hará, gracias. acepta en 2 minutos :) –

1

favor ver si igual a Double.POSITIVE_INFINITY

double result; 
result = 4.0/0.0; 
+0

Creo que eso es lo que él no quiere. Él quiere ver un error. –

+0

Sí, tal vez .... – gd1

1

Hay dos campos para el infinito en la clase Double: POSITIVE_INFINITY y NEGATIVE_INFINITY que puedes verificar

Tenga en cuenta que la división entera por cero arrojaría una ArithmeticException por lo tanto su línea tendría que ser 4.0/0, 4/0.0 o 4.0/0.0 desde el 4 y 0 son números enteros y por lo tanto dar lugar a operaciones aritméticas con enteros.

5

El código anterior produce

ArithmeticException:/by zero 

se puede tomar esta excepción en un bloque try/catch.

-1

Este tipo de errores se llaman excepciones. Puede usar el bloque try-catch para atrapar esta excepción.

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

se puede leer sobre manejo de excepciones here.

+0

No tomes excepciones genéricas si solo buscas una especializada. – Bobby

+0

Mejor aún, no atrape excepciones cuando una simple prueba sería mejor. – giusti

0

Jacek Abril tratar este código

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

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

`

Cuestiones relacionadas