开始在遇到这种情况之后一直觉得很奇怪,你说分母为0,分子为int类型或者char或者long或者short类型的数据得到的结果为异常

 Exception in thread "main" java.lang.ArithmeticException: / by zero

但是为什么分子为float类型或者double类型的数据结果就是Infinity呢?
先上代码:

public class HelloWorld {public static void  main(String args[]) {try {double m = 3.14/0;float n = (float) (325.14/0);System.out.println("float类型的结果为:"+n);System.out.println("double类型的结果为:"+m);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}

输出结果为:

float类型的结果为:Infinity
double类型的结果为:Infinity

这是为什么呢:为什么会是无穷大呢?
原来,在计算机中的0是使用的一个非常接近于0的小数来表示的,在整除整数时,除数0为整数,故而违反了数学定义,会出错,而在被除数为float或者double时,此时的除数0为一个非常接近于0的小数但却并非为0,故而结果为无穷大,因此结果为Infinity。

从以下可以看出在计算机中0是一个无限接近于0的小数

public class HelloWorld {public static void  main(String args[]) {try {//          double m = 3.14/0;
//          float n = (float) (325.14/0);
//          System.out.println("float类型的结果为:"+n);
//          System.out.println("double类型的结果为:"+m);int s = 20;System.out.println(s/0f);System.out.print(s/0d);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}
}

结果为

Infinity
Infinity

是不是感觉很奇妙?

Java学习之分母为零分子为float或者double类型结果为Infinity的原因相关推荐

  1. 【JAVA学习】1、零基础入门Java 基础语法:概念、规则、格式

    [JAVA学习]1.零基础入门Java 基础语法 前言 JAVA开发环境选择 Java 基础概念 Java 标识符 Java修饰符 基础代码模板框架 命名规则 基础规则 后端开发规则 代码格式 前言 ...

  2. java的int、char、long、float、double对byte的转换,在通信的时候会用到

    /** * java的int.char.long.float.double对byte的转换,在通信的时候会用到 * <ul> * <li>文件名称: com.born.util ...

  3. java里short,int,long,float,double范围及可写位数

    一.取值范围 1.int  二进制位数:32 包装类:java.lang.Integer 最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方) 最大值:Intege ...

  4. Java入门之7:Java中的float和double类型的浮点数是怎么按照IEEE 754标准存储的?

    前言: 这篇博文,我写了好几天--,里面涉及的基础概念比较多,内容比较多,举例也比较多,想搞清楚明白就难免 我自己都会觉得啰嗦,我整理了目录出来,看完需要一点时间,可以自行根据需要.感兴趣的 选择阅读 ...

  5. Java学习笔记10(零压力理解继承多态权限修饰符)

    文章目录 继承 方法的重写(override) 四种访问权限修饰符: 关键字super 类对象的实例化的底层原理 多态 instanceof操作符 object类 继承 继承是Java最重要的,类之间 ...

  6. Java学习之旅(三四):包装类之 Double

    Double 和 Float 包装类是对 double.float 基本类型的封装,它们都是 Number 类的子类,又都是对小数进行操作,所以常用方法基本相同.Double 类在对象中包装一个基本类 ...

  7. Java中short、int、long、float、double的取值范围

    一.基本数据类型的特点,位数,最大值和最小值. 1. 基本类型:short 二进制位数:16 包装类:java.lang.Short 最小值:Short.MIN_VALUE=-32768 (-2的15 ...

  8. java中float和double型数据在赋值时有哪些注意事项?,java语言中float和double类型的数据在编程时的注意事项...

    float和double类型的数据在编程时的需要注意的地方 package execisetest; public class AccuranceTest {     public static vo ...

  9. java学习 day01_basic

    ①初识Java 文章目录 ①初识Java 1. Java历史 1.1 Java语言的诞生 1.2 Java语言的发展历程 2. Java主要用途 3. JDK和JRE 4. Java程序的运行原理 5 ...

最新文章

  1. Android Fragment 基本介绍
  2. zookeeper源码分析之五服务端(集群leader)处理请求流程
  3. Oracle数据块原理深入剖析
  4. ios mysql 创建不同的用户表_iOS中数据库-创建表-增删改查数据-基础语法
  5. HDUOJ---1879 继续畅通工程
  6. 2021中国企服企业规模化获客体系建设指南
  7. 测试学python路线_小蜗分享:Python测试开发全套学习路线
  8. 【报告分享】2022中国人工智能人才培养报告.pdf(附下载链接)
  9. 【Java】 环境变量如何配置?
  10. 好淘客饿了么返利系统-外卖返利优惠券系统-支持美团、饿了么的外卖和商超/电影票 支持多级代理返利
  11. echarts三维建筑地图注解
  12. Content type ‘application/json;charset=UTF-8‘ not supp...
  13. Hyperledger Fabric 2.3环境配置搭建指南及BUG记录
  14. AudioToolbox使用方法总结
  15. 会声会影如何修整剪辑视频素材
  16. 【IoC 和 DI 有什么区别】
  17. 基于PHP的租赁商城系统(包括数据库和后台)
  18. 第6章第9节:幻灯片背景:使用纹理和图像作为幻灯片的背景 [PowerPoint精美幻灯片实战教程]
  19. arcgis使用arcpy计算土地利用LUCC变化转移矩阵、马尔科夫模型变化表,最好用的方法TabulateArea实现两期数据变化统计
  20. 51CTO稿酬标准2016版正式发布!

热门文章

  1. Z-Wave Association Basics ZWAVE设备之间的本地关联
  2. 举家搬到西雅图,就为了去 Amazon,值得吗?
  3. iOS开发-停止WebView播放视频/音频 1
  4. 企业申请增值电信业务许可证icp许可证应具备哪些条件
  5. Flex 4 皮肤设计资料
  6. 日程管理APP的测试计划和测试矩阵
  7. 全球及中国无钥匙启动系统芯片行业研究及十四五规划分析报告
  8. bt30与bt40哪个好_小型加工中心BT30,BT40,NT30有什么区别?
  9. MySQL——统计函数count,合计函数sum,(avg,max,min)函数
  10. pkpm弹性时程分析计算书怎么出_核电站环行起重机轮压时程分析