黑马程序员技术交流社区
标题:
double类型的0能够做除数?
[打印本页]
作者:
dzr19850306
时间:
2013-2-14 08:24
标题:
double类型的0能够做除数?
刚刚测试了下,整数的时候会抛出异常,但是定义为双精度浮点型的时候则能够顺利通过。
作者:
张洪慊
时间:
2013-2-14 09:51
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
作者:
袭喜悦
时间:
2013-2-14 10:42
在JAVA中有三个特殊的浮点类型的数值:正无穷大、负无穷大、NaN
这三种数值用来表示出错或者溢出的情况。
举个例子,用一个正数去除0得到的是正无穷大,而计算负数的平方根会得到NaN
0可以做除数,得到的是一个分正负的无穷大;当两个数的绝对值均为0.0时候,商等于NaN。当0.0/x,x不等0.0时候,得到的一个带符号位0.0:
作者:
陈科宇
时间:
2013-2-14 12:16
朋友,其实没什么奇怪的。我们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的知识,就需要你自己去查阅了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2