A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dzr19850306 中级黑马   /  2013-2-14 08:24  /  1912 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

刚刚测试了下,整数的时候会抛出异常,但是定义为双精度浮点型的时候则能够顺利通过。

4 个回复

倒序浏览
class Test
{
        public static void main(String[] args)
        {
                double i=0,j=1;
                System.out.println(j/i);//infinity(无穷,无限大) 个人理解把0.0当成一个极小的数
        }
}
可以再参照下 http://bbs.csdn.net/topics/270031545
回复 使用道具 举报

在JAVA中有三个特殊的浮点类型的数值:正无穷大、负无穷大、NaN

这三种数值用来表示出错或者溢出的情况。

举个例子,用一个正数去除0得到的是正无穷大,而计算负数的平方根会得到NaN
0可以做除数,得到的是一个分正负的无穷大;当两个数的绝对值均为0.0时候,商等于NaN。当0.0/x,x不等0.0时候,得到的一个带符号位0.0:
回复 使用道具 举报
朋友,其实没什么奇怪的。我们double,float都是浮点型。运算时会丢失精度。我给你换成BigDecimal你就知道了:
                double d1=5.0;
                double d2=0.0;
                BigDecimal bd1=new BigDecimal(d1);
                BigDecimal bd2=new BigDecimal(d2);
                System.out.println(bd1.divide(bd2));
       现在你再运算,就不会那么幸运了。至于BigDecimal的知识,就需要你自己去查阅了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马