Бесконечность или исключение в Java при делении на 0?

Опубликовано: 15 Февраля, 2022

Consider the following code snippets:

public class Geeksforgeeks
{
    public static void main(String[] args)
    {
        double p = 1;
        System.out.println(p/0);
    }
}

Output:

Infinity
public class Geeksforgeeks
{
    public static void main(String[] args)
    {
        int p = 1;
        System.out.println(p/0);
    }
}

Выход:

 Исключение в потоке "main" java.lang.ArithmeticException: / по нулю
    в Geeksforgeeks.main (Geeksforgeeks.java:8)

Объяснение : В первом фрагменте кода двойное значение делится на 0, а в другом случае целочисленное значение делится на 0. Однако решение для обоих из них отличается.

  • В случае двойного / плавающего деления выводом будет Infinity , основная причина того, что он реализует арифметический алгоритм с плавающей запятой, который определяет специальные значения, такие как «Не число» ИЛИ «бесконечность» для «деления на ноль» согласно IEEE. 754 стандарта.
  • В случае целочисленного деления генерируется исключение ArithmeticException.

Эта статья предоставлена Пранджалом Матхуром . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью и отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше

Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .