Бесконечность или исключение в Java при делении на 0?
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 и многому другому, см. Полный курс подготовки к собеседованию .