黑马程序员技术交流社区

标题: 求解答 [打印本页]

作者: 海贼王019    时间: 2015-4-9 22:29
标题: 求解答
这个为什么会输出一个不认识的东西,也不报错,为什么不是3.0啊 ,纠结啊

2015-04-09_222709.png (11.94 KB, 下载次数: 10)

2015-04-09_222709.png

作者: qq250144825    时间: 2015-4-9 23:33
首先Infinity是无穷大的意思,还有算术规则中0是不能为除数的,在这里可以理解为0被当做是无限趋近于0 的数,3除于无限趋近于0的数自然是无限大
作者: 刘镓旗    时间: 2015-4-10 11:52
受教了~学习了~
作者: 只吃饭不洗碗    时间: 2015-4-10 11:53
0能做除数?
作者: 海贼王019    时间: 2015-4-10 21:42
只吃饭不洗碗 发表于 2015-4-10 11:53
0能做除数?

反正能打印出那些字母
作者: 海贼王019    时间: 2015-4-10 21:43
qq250144825 发表于 2015-4-9 23:33
首先Infinity是无穷大的意思,还有算术规则中0是不能为除数的,在这里可以理解为0被当做是无限趋近于0 的数 ...

虽然感觉很有道理,但是为什么0能做除数,为什么有时无线接近0呢
作者: sisel    时间: 2015-4-10 23:51
这个  3.0/0必须不是3吧。。。。无穷大呀
作者: 郁永鹏    时间: 2015-4-11 00:06
受教了,真心受教了,谢分享,
作者: 海贼王019    时间: 2015-4-11 00:09
sisel 发表于 2015-4-10 23:51
这个  3.0/0必须不是3吧。。。。无穷大呀

啊,没有太明白你的意思
作者: 海贼王019    时间: 2015-4-11 00:11
郁永鹏 发表于 2015-4-11 00:06
受教了,真心受教了,谢分享,

哈哈,我也是无意间弄出来的
作者: thoris    时间: 2015-4-11 00:14
本帖最后由 thoris 于 2015-4-11 00:16 编辑

Exception in thread "main" java.lang.ArithmeticException: / by zero
        at Test003.main(Test003.java:16)
正常int类型的话是这样的




作者: thoris    时间: 2015-4-11 00:22
复制一个csdn论坛上的回答:
1.Infinity只是一句话。说输出结果是个无穷大的数。
2.Infinity告诉你结果是个正无穷大数。负无穷大数输出结果是 -Infinity[比如:System.out.print(1.0/-0.0)]。

浮点数有正无穷大,负无穷大
   Double.POSITIVE_INFINITY / Float.POSITIVE_INFINITY --正无穷大
   Double.NEGATIVE_INFINITY / Float.NEGATIVE_INFINITY --负无穷大

double中的0不是真正的0或0.0 而是一个很长的,可能是0.000000000001或其它,所以一个正数除以0.0结果就得很大很大。负数除以0.0, 0.0/0.0 一样道理。

//浮点数是使用二进制数据的科学计数法表示,所以不可能精确表示一个浮点数

作者: AndroidM    时间: 2015-4-11 00:52
楼上受教了,  怪不得不会报Exception呢




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