黑马程序员技术交流社区

标题: 计算题 [打印本页]

作者: fengche    时间: 2013-10-20 20:21
标题: 计算题
本帖最后由 fengche 于 2013-10-20 21:30 编辑
  1. class Test {
  2.    public static void main(String[] args) {
  3.        double i = 0.0 / 0.0;
  4.        System.out.println(i - i == 0);
  5.    }
  6. }
复制代码
为什么 int h=0/0;抛异常而double i = 0.0 / 0.0;不抛异常
作者: 龏鈊づ廱鵆ぐ    时间: 2013-10-20 20:59
double类型的0.0 != 0,这点一定要注意了,也就是说0.0不是0,可能是0.00000000000000001。所以不会出现异常。
而0.0具体是多少,谁也不知道,是由虚拟机运行时在某一个误差范围内随即产生的。所以每次运行时候你得到的i的结果都不一样。
作者: cuilitang    时间: 2013-10-20 21:11
java算十进制小数有问题,因为底层是二进制,就好像十进制算10/3一样




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2