下面的语句java.lang.ArithmeticException: / by zero很明显。

System.out.println(0/0);

因为文字0被视为int文字,并且在整数算术中不允许除以零。

但是,以下情况不会引发类似的任何异常java.lang.ArithmeticException: / by zero。

int a = 0;

double b = 6.199;

System.out.println((b/a));

显示Infinity。

以下语句NaN无例外地产生(非数字)。

System.out.println(0D/0); //or 0.0/0, or 0.0/0.0 or 0/0.0 - floating point arithmetic.

在这种情况下,两个操作数都被视为双精度。

同样,以下语句也不会引发任何异常。

double div1 = 0D/0; //or 0D/0D

double div2 = 0/0D; //or 0D/0D

System.out.printf("div1 = %s : div2 = %s%n", div1, div2);

System.out.printf("div1 == div2 : %b%n", div1 == div2);

System.out.printf("div1 == div1 : %b%n", div1 == div1);

System.out.printf("div2 == div2 : %b%n", div2 == div2);

System.out.printf("Double.NaN == Double.NaN : %b%n", Double.NaN == Double.NaN);

System.out.printf("Float.NaN == Float.NaN : %b%n", Float.NaN == Float.NaN);

它们产生以下输出。

div1 = NaN : div2 = NaN

div1 == div2 : false

div1 == div1 : false

div2 == div2 : false

Double.NaN == Double.NaN : false

Float.NaN == Float.NaN : false

它们都返回false.为什么用浮点数或双精度数允许此操作(除以零)?

顺便说一下,我可以理解,浮点数(双精度数)的值代表正无穷大, 负无穷大,而不是数字(NaN)...

java浮点数除以0_为什么用浮点数(或双精度)将数字除以零不会在Java中抛出java.lang.Arithmetic...相关推荐

  1. android socket握手,HttpURLConnection抛出java.net.SocketTimeoutException:在Android 4.1.1中SSL握手超时...

    在Android 5.0及更高版本中运行时,我的代码运行正常.但是在Android 4.1.1中它会抛出java.net.SocketTimeoutException:SSL握手超时. URL url ...

  2. AES加密时抛出java.security.InvalidKeyException:#160;Illegal#160;key#160;size#160;or#160;def...

    原文:AES加密时抛出java.security.InvalidKeyException: Illegal key size or def 使用AES加密时,当密钥大于128时,代码会抛出 java. ...

  3. 为什么我可以在Java中抛出null? [重复]

    本文翻译自:Why can I throw null in Java? [duplicate] This question already has an answer here: 这个问题已经在这里有 ...

  4. java异常在哪一层捕获_当在一个方法的代码中抛出一个检测异常时,该异常或被方法中的 ( )结构 捕获,或者在方法的 ( ) 中声明_学小易找答案...

    [填空题]当异常已经被定义时,必须通过( ) 语句来处理它. [填空题]Catch 子句包含( )的程序段 [单选题]下列java语言的常用异常类中,属于检测异常的是() [单选题]自定义异常类时,可 ...

  5. 程序中抛出空指针异常_从Java应用程序中消除空指针异常

    程序中抛出空指针异常 这篇文章简要介绍了Java 8的最有用但又"毫不夸张"的功能. 程序员花费了无尽的时间来纠正最常见但最危险的错误之一,即Null指针异常. 空指针异常会导致我 ...

  6. Android ADT插件更新后程序运行时抛出java.lang.VerifyError异常解决办法

    当我把Eclipse中的 Android ADT插件从21.1.0更新到22.0.1之后,安装后运行程序抛出java.lang.VerifyError异常. 经过调查,终于找到了一个有效的解决办法: ...

  7. java,给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    标题:java,给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 一.示例 二.题解 方法一,暴力法:使用双重for循环,每 ...

  8. java 照片识别 自动判题,【判断题】throw关键字只可以抛出Java能够自动识别的异常。...

    [判断题]throw关键字只可以抛出Java能够自动识别的异常. 更多相关问题 [名词解释] 庶兔马首之络 [单选] 帮助服务对象记住信息时下列哪项是错误的() [名词解释] "摄情&quo ...

  9. 在不丢失堆栈跟踪的情况下重新抛出Java中的异常

    在C#中,我可以使用throw; 保留堆栈跟踪时重新抛出异常的语句: try {... } catch (Exception e) {if (e is FooException)throw; } Ja ...

最新文章

  1. android 闪烁发光动画,androidview动画发光效果在imageview上
  2. python_0基础开始_day05
  3. cpu风扇一会转一会停_宝宝不能吹电风扇?空调PK电风扇,到底该Pick谁啊啊啊!...
  4. eclipse/myeclipse中如何开启断言调试代码
  5. android 方法超时,android socket.io中的发出或确认超时处理?
  6. 家里宽带628连不上_WiFi密码正确,别人正常但是自己的手机却连不上WiFi是怎么回事?...
  7. libv4l 库【转】
  8. 一次关于使用status作为变量引发的bug及思考
  9. AI金融知识自学偏量化方向-了解不同类型的机器学习2
  10. Java 面向对象 --匿名内部类
  11. 通过apache对页面进行压缩和页面缓存来提升性能
  12. 数据挖掘与python实践心得体会_数据挖掘心得体会
  13. msdia80.dll文件出现在磁盘根目录下的解决方案
  14. 亲子关系-《抗压力·亲子篇》书中的精髓:理解何为抗压力,让孩子从小学会如何面对挫折,培养抗压力。
  15. 迅雷和BT有什么区别?迅雷是不是不毁硬盘?速度快吗?
  16. linux androidx86双系统,实用教程:PC实现Windows/原生安卓双系统
  17. 19款国产手机无一幸免:15分钟破解人脸识别,打印眼镜让刷脸形同虚设 ?
  18. 2021-05-08 小华子第一篇
  19. 非正式协议/正式协议
  20. 有效值检波技术(如何测量电路中的有效值)

热门文章

  1. Go单测测试 — 数据库 CRUD 的 Mock 测试
  2. oracle asm ora 15041,ORA-15041,ORA-01274 故障解决实例
  3. #define c# 报错_#define 预处理指令(C++,C#,VB.NET)
  4. Eureka实例自动过期
  5. Mybatis中强大的resultMap
  6. 遍历集合常见的两种方式
  7. Java会话技术之 —— Spring Session
  8. curl_multi实现并发
  9. pageResponse - 让H5适配移动设备全家(移动端适配)
  10. 最重要的 Java EE 最佳实践