Java中为啥整数除以0出现异常
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中为啥整数除以0出现异常相关的知识,希望对你有一定的参考价值。
这种问题写个代码跑一下就可以了,java中整数除以0会引发
java.lang.ArithmeticException: / by zero
ArithmeticException是出现异常的运算条件时,抛出此异常,结果如下图:
除此之外还要注意,浮点数除以0将会的得到 Infinity(无穷大)或NaN结果,但不会报异常。
参考技术A 在数学里任何数除以0是没有意义的,不存在异常和报错一说.只是在计算机中,编程语言人为的定义将除数为0的表达式当做异常处理,没有为什么一说,只是计算机程序世界的人为规定,
就像为什么代码叫代码?程序叫程序?人叫人?人类社会所有的事物一切都是人为的划分和归纳,科学也是一样,1+1为什么等于2,不等于3?这个问题无解
宇宙创世大爆炸诞生了星球与生命,但是却没有定义生命规则和标准,你现在看到的所有的一切都是人为规定一步步演化而来, 参考技术B 这是数学问题,0不能作为被除数啊 参考技术C 因为除数是0
~~~~~~~~·
在java中的double和float类型数据相除为啥可以除以零
int和long类型为什么不可以,会出现异常?
其他编程语言也是吗?
java中就是这么规定的,没有什么为什么,具体规定如下:
任意整数(byte、short、int、long皆可)除以整数0结果为ArithmeticException;
0除以浮点0结果为NAN,细分的话包括以下三种情况:
(1)0/0.0
(2)0.0/0.0
(3)0.0/0
情况(3)虽然除的是个整数0,但在运算过程中发生了类型转化变成了浮点0;
任意数(八大基本类型皆可)除以浮点0结果为Infinity/-Infinity。
如果问为什么会这样,可以理解为在java中浮点数0并非一个准确值,而是一个无限接近0的数。
此外,Float.NaN!=Float.NAN,Double.NaN!=Double.NaN;但是Float.POSITIVE_INFINITY==Float.POSITIVE_INFINITY==Double.POSITIVE_INFINITY、
Float.NEGATIVE_INFINITY==Float.NEGATIVE_INFINITY==Double.NEGATIVE_INFINITY。
参考技术A 在JAVA中有三个特殊的浮点类型的数值:正无穷大、负无穷大、NaN这三种数值用来表示出错或者溢出的情况。
举个例子,用一个正数去除0得到的是正无穷大,而计算负数的平方根会得到NaN本回答被提问者和网友采纳 参考技术B 结果不是无穷大
就是NaN
或者出现异常
其实在计算机中0是以一个很接近0的小数表示的
其他语言会报错的 参考技术C 被0除就会出异常的,你试下就知道了,呵呵
用try,catch语句捕获异常 参考技术D 楼上的说的对 因为 无穷大 的类型是 浮点数
以上是关于Java中为啥整数除以0出现异常的主要内容,如果未能解决你的问题,请参考以下文章
在java中的double和float类型数据相除为啥可以除以零