首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

1/0跟1.0/0除零错

2012-12-24 
1/0和1.0/0除零错搞IT的每个人都知道,0是不能作为除数的,这是操作系统在底层就存在一个除零中断,所以绝大

1/0和1.0/0除零错

搞IT的每个人都知道,0是不能作为除数的,这是操作系统在底层就存在一个除零中断,所以绝大多数高级编程语言(至少是我知道的C、C++、Java等)都是不允许除零的。

但是请看下面这两段代码

?

/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stub System.out.println(1.0/0);}

?却没有异常抛出,而是输出Infinity。

为什么?

这是因为Java在处理表达式计算时,默认对整数型0转型成0.0,而浮点数在计算机内是无法绝对精确的表示的,因此这个0.0在计算机内部只是一个接近0的极小浮点值而已,所以很容易的可以想出为什么输出Infinity。

同样的取模运算%也存在这个问题。

这是前两天在温习Java基础知识,看《疯狂Java讲义》时看到的,留作备忘。

同时通过Python语言的实验,发现Python只要是除零都会报错ZeroDivisionError,不论是int 0还是float 0

热点排行