除数为0的几种情况测试

1、int类型,当除数为0时,编译可以通过,但运行时会抛出异常。

    static void test1(){
        int a = 10;
        int b = 0;
        int c = a / b; //java.lang.ArithmeticException: / by zero
        System.out.println(c);
    }

2、单精度浮点型,当除数为0时,编译通过,也可运行,运算结果为Infinity(无穷大),当把结果转换为int型时,会显示int所能存储的最大值(2的31次方-1)

    static void test2(){
        float a = 10.0f;
        float b = 0.0f;
        float c = a / b;
        System.out.println(c);//Infinity
        System.out.println((int)c);//2147483647
    }

3、多精度浮点型,当除数为0时,编译通过,也可运行,运算结果为Infinity(无穷大),当把结果转换为int型时,会显示int所能存储的最大值(2的31次方-1),把结果转换为单精度浮点型时,仍为Infinity(无穷大)

    static void test3(){
        double a = 10.0d;
        double b = 0.0d;
        double c = a / b;
        System.out.println(c);//Infinity
        System.out.println((int)c);//2147483647
        System.out.println((float)c);//Infinity
    }

注:本文所述内容基于JDK1.7。

水平有限,上述观点难免有误,仅供参考。欢迎牛们拍砖!

时间: 2024-12-19 04:35:46

除数为0的几种情况测试的相关文章

C++中复制构造函数被调用的三种情况

C++中的构造函数 c++中的构造函数分为构造函数,和复制构造函数,相比于构造函数,复制构造函数使用更加方便,快捷.构造函数可以有多个,二复制构造函数只能有一个,因为复制构造函数的参数只能是当前类的一个对象,参数表是固定的,无法重载,若用户没有定义自己的辅助构造函数,系统会自动生成一个复制构造函数,其作用是将参数的之赋予当前的对象.若用户自己定义了复制构造函数,系统则不会生成默认复制构造函数.用户自己定义的复制构造函数功能可以自己构造,不一定执行复制的功能. 复制构造函数同构造函数的功能大体相同

Junit4使用详解一:测试失败的两种情况

Junit4最佳实践 1.把测试文件夹和代码文件夹分离,这两者的代码互不干扰,代码目录和测试目录是并列的关系 2.Java代码 3.创建单元测试代码文件 4.运行测试代码  5.查看测试结果 现在的情况是我的测试代码是全部通过的,所以右边横条是绿色,现在再来看另一种情况: 我第一个“相加“的方法中,本来3+3=6,我的期望值写成了3,导致运行测试代码时,报了一个failure的错误,意思是指预期值跟我写的值不一致导致错误. 再看到这个地方 这是一个“相除”的方法,3/0,系统直接报错error,

OC:除数为0的情况下异常的处理(检测、抛出、捕捉、处理)

1 // DivTest.h 2 // 异常的处理 3 // 4 // Created by ma c on 15/8/11. 5 // Copyright (c) 2015年 bjsxt. All rights reserved. 6 // 7 8 #import <Foundation/Foundation.h> 9 10 @interface DivTest : NSObject 11 @property(nonatomic,assign)CGFloat x; 12 @property(

javascript 按位或(|),无符号右移(&gt;&gt;&gt;)运算,组合技巧来实现————密码强度提示,四种情况??

直接上代码,原来的代码中,switch中的第一个case,判断之后,少加了个break 跳出判断语句,害得我查了半天,“怎么样式老是不对,不科学啊,呵呵,原来是没跳出case的判断了,还会执行后面的判断!!,哎,嘿嘿,不过后来还是发现了,开心中...” 原文地址:http://www.cnblogs.com/wybztn/archive/2009/11/18/1605285.html 这里还有个重要的设计技巧, 0001, 0010, 0100, 1000各代表一种情况的话,组合起来就有很多种情

DOM中关于脱离文档流的几种情况分析

所谓的文档流,指的是元素排版布局过程中,元素会自动从左往右,从上往下的流式排列.并最终窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素.脱离文档流即是元素打乱了这个排列,或是从排版中拿走. 当前所知的脱离文档流的方式有两种:浮动和定位. a.定位属性positon 先看一下定位.看一段对定位各个字段的描述,有助于理解 值 描述 absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位. 元素的位置通过 "left", "top&q

Tomcat内存溢出的三种情况及解决办法分析

转自 http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380147d8c8c4668d4e419ce3b4c413037bfa6663f405a8e906b6075aa1f0ce9f03176370123b5989b8908dcac925f75ce786a6459db0144dc4ee59a1167877bcd06feaf68bce6e732e2e88893880705dd53742bddaccd095b4

JS生成某个范围的随机数(四种情况)

前言: JS没有现成的函数,能够直接生成指定范围的随机数. 但是它有个函数:Math.random()  这个函数可以生成 [0,1) 的一个随机数. 利用它,我们就可以生成指定范围内的随机数. 而涉及范围的话,就有个边界值的问题.这样就包含四种情况: 1)min ≤ r ≤ max  (一般这种比较常见) 2)min ≤ r < max 3) min < r ≤ max 4)min < r < max 一.min ≤ r ≤ max function RandomNumBoth(

Hibernate多对多两种情况

Hibernate在做多对多映射的时候,除了原先的两张表外,会多出一个中间表做关联,根据中间表的会有两种不同的配置情况: 1.中间表不需要加入额外数据. 2.中间表有其他字段,需记录额外数据. 下面,我们就以address.person这两张表根据这两种情况做下相应的配置: 情况1: 我们需要建三张表,一张address表,一张person表,一张中间表(其实中间表可以不用建,配置好后运行会自动生成),如下: delimiter $$ CREATE TABLE `address` ( `addr

转:Tomcat内存溢出的三种情况及解决办法分析

Tomcat内存溢出的原因 在生产环境中tomcat内存设置不好很容易出现内存溢出.造成内存溢出是不一样的,当然处理方式也不一样. 这里根据平时遇到的情况和相关资料进行一个总结.常见的一般会有下面三种情况: 1.OutOfMemoryError: Java heap space 2.OutOfMemoryError: PermGen space 3.OutOfMemoryError: unable to create new native thread. Tomcat内存溢出解决方案 对于前两种