JavaIntermedio25 oct 2025

¿Dividir por Cero? ¡Depende del tipo! 🤯

snippet.java
public class DivisionWTF {
    public static void main(String[] args) {
        try {
            int integerResult = 1 / 0;
            System.out.println("Integer division: " + integerResult);
        } catch (ArithmeticException e) {
            System.out.println("Integer division by zero: " + e.getMessage());
        }

        double doubleResult = 1.0 / 0.0;
        System.out.println("Double division: " + doubleResult);

        double nanResult = 0.0 / 0.0;
        System.out.println("NaN division: " + nanResult);
    }
}

¿Qué crees que imprime?

Salida Esperada

Integer division by zero: / by zero
Double division by zero: / by zero
NaN division by zero: / by zero

⚠️ Salida Real

Integer division by zero: / by zero
Double division: Infinity
NaN division: NaN

¿Por qué pasa esto?

¡Prepárate para un giro inesperado en el mundo de la aritmética Java! 🎢 Uno esperaría que dividir por cero siempre sea un no-no rotundo, ¡un crimen matemático que siempre acaba en excepción! 💥 Pero Java, con su particular encanto, nos muestra que no todas las divisiones por cero son iguales. Cuando usas **enteros**, Java es un **purista estricto**. Intentar `1 / 0` es como intentar un salto base sin paracaídas: ¡`ArithmeticException` al canto! La JVM se niega a representarlo. Pero, ¡ah, los **números de punto flotante**! 🧙‍♂️ Con `double` o `float`, Java cambia su sombrero a uno de matemático zen que sigue el estándar IEEE 754. - `1.0 / 0.0` no explota, ¡se convierte en `Infinity`! Es como si dijera: "Sí, es infinitamente grande, no hay problema." 🌌 - Y `0.0 / 0.0` tampoco peta, ¡produce `NaN` (Not-a-Number)! Para Java, esto es una operación indefinida, pero en lugar de tirar un error, te da un valor especial que significa "no tengo ni idea qué es esto". 🤔 Es como si los enteros fueran directivos de empresa y los `double` unos artistas abstractos. ¡Un mismo problema, dos soluciones completamente diferentes!

Conceptos relacionados

floating-pointexceptionsarithmetic