黑马程序员技术交流社区
标题:
为什么 -0/3 结果是 0,而 -0.0/3.0 结果是 -0.0?
[打印本页]
作者:
黑马潘浩
时间:
2013-3-9 22:46
标题:
为什么 -0/3 结果是 0,而 -0.0/3.0 结果是 -0.0?
本帖最后由 黑马潘浩 于 2013-3-10 11:01 编辑
如题:为什么 -0/3 结果是 0,而 -0.0/3.0 结果是 -0.0?
作者:
郑志强
时间:
2013-3-9 22:57
int类型的数除以int类型的数等于int 类型的数
double类型的数除以double类型的数等于double类型的数
int 类型的数除以doubole类型的数会是int 但他会隐式转换为double类型
作者:
张宁
时间:
2013-3-9 23:12
在Java里,整数是用补码表示的。在补码中0只有一种表示方法。另一方面,浮点数则是用 IEEE 标准表示的, 对于0有两种表示方法, 0 和 -0。。。这看上去有点奇怪,但是是规定了。小问题。记住就是了。
作者:
张卫刚
时间:
2013-3-9 23:20
为什么 -0/3 结果是 0,而 -0.0/3.0 结果是 -0.0?
答:
1:0除以任何数都得0,0跟-0有什区别,没区别; 不定义默认为int型,所以-0/3 结果只取商,所以是0 【0比较特殊嘛】
2: -0.0/3.0 java默认是double型的,double对精度要求高,所以结果是 -0.0
作者:
曾钦
时间:
2013-3-9 23:22
试了下,还真是这样。记住了。。
还试了下
-0/3.0 =》 0.0
-0.0/3 =》 -0.0
求大神出来分析解释下~
作者:
戴乾刚
时间:
2013-3-9 23:30
四楼正解、、顶一个
作者:
黑马17期-闫东东
时间:
2013-3-9 23:52
小总结:
1.当两个变量做运算,如果类型一样,那么结果与其类型一样。
2.当两个变量做运算,类型不一样,其结果取精度高的类型。
3.如果byte short char 三种数据类型做运算,会先将自己转换成int在参与运算.
如果左边数比右边小,那么结果就是左边的数
如果出现负数,那么结果只与左边数的正负有关 ,做运算时通过绝对值操作。
System.out.println(3%-10);3
System.out.println(-3%10);-3
System.out.println(-3%-10);-3
作者:
黑马17期-闫东东
时间:
2013-3-10 14:08
黑马17期-闫东东 发表于 2013-3-9 23:52
小总结:
1.当两个变量做运算,如果类型一样,那么结果与其类型一样。
2.当两个变量做运算,类 ...
给点分吧:'(
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2