+ 4

[Java] Dividing by zero did not give error

For the following code: double x=-1.0/0.0; System.out.println(10.0/x); The output was -0.0 My questions are 1) Why doesn't the first line itself give any error? and 2) Why is there a negative sign with zero? Is 0.0 different from -0.0?? If this question has been asked before, please provide a link. Thanks in advance!

18th Oct 2020, 1:37 AM
Aditya Kumar
Aditya Kumar - avatar
3 Answers
+ 10
That's because JVM only throws arithmetic exception when divided by int 0 If you divide by floating-point 0.0 result will be infinity. Here the sign is "-" If you try to print x, System.out.println(x); You'll see it results in -Infinity Now when you divide any number by -infinity it'll result in -0.0 https://www.javamadesoeasy.com/2015/12/when-dividing-by-zero-does-not-throw.html?m=1
18th Oct 2020, 1:54 AM
Minho
Minho - avatar
+ 4
Basically JVM doesn't throw an exception for float pointing number . It gives output in-form of infinty/-infinty or NaN Eg:- Float a = 0.0f Float b = a System.out.print(b/a); //For this code output will be "NaN" Float a = 1.0f Float b = 0.0f System.out.print(a/b); //For this output will be "infinity" Float a = -1.0f Float b = 0.0f System.out.print(a/b); //For this output will be "-infinity"
20th Nov 2020, 5:31 AM
Irem Khan
+ 3
Oh okay!! Thanks!
18th Oct 2020, 1:57 AM
Aditya Kumar
Aditya Kumar - avatar