double型的除数为什么可以为0? public class Test{ public static void main(String args[]){ double i = 9; try{ i = i/0; System.out.println(i); }catch(Exception e){ System.out.println("除数不能为0!"); } }} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Infinity 无穷大计算机不能准备计算浮点数的,0自动类型转换为浮点数后应该用一个很接近0的小数表示,结果溢出,用Infinity表示 当然可以了,如果编译器check被除数不能为零的话,那么就会将程序的设计范围限定的很死。因为有很多程序,当被除数为0的时候,它要在异常中处理操作。就算是编译器可以check被除数不能为零。但是被除数是个变量的话,编译器就不能确定了。 看漏了,没看清。double,我以为LZ想说任意类型的时候,为什么编译器不检查被除数为0。 OK. double和float的被除数都可以为0的原因是java中有三个特殊的浮点类型,就是NAN,负无穷大和无穷大。用来表示浮点型操作出错或者是溢出的某些情况。比如负数的平方根就会是NAN 请问下这段代码的equals和hashcode方法不是很懂 用java单链表做个管理系统,实现查找,插入,删除等操作 请推荐一本专讲java桌面开发的经典书 新手,求救,“”and null ANT_HOME 提问 十万火急!高分求助一java界面问题 在jtable中如何把其中某一单元格变成只读的? 请问如何在Jcreator pro里面导入Corejava 应该怎么用java bean? 那位大哥能有java做个资源管理器样的东东吗? 怎么用多线程实现循环打印。。 怎么序列化非自定义类的对象?(要保存JTextPane的内容及字体图片,所以想序列化StyledDocument对象)
因为有很多程序,当被除数为0的时候,它要在异常中处理操作。
就算是编译器可以check被除数不能为零。但是被除数是个变量的话,编译器就不能确定了。
看漏了,没看清。double,我以为LZ想说任意类型的时候,为什么编译器不检查被除数为0。
OK. double和float的被除数都可以为0的原因是java中有三个特殊的浮点类型,就是NAN,负无穷大和无穷大。用来表示浮点型操作出错或者是溢出的某些情况。比如负数的平方根就会是NAN