当前位置: 技术问答>java相关
我的Jb7运行下面一段小小代码,结果惊人!!
来源: 互联网 发布时间:2015-08-05
本文导语: double a,b; a = 2.00; b = a + 3/2; System.out.println(b); 猜猜是多少? 竟然是3.0 !!!!!! 为什么不是3.5 ? | public class t1{ public static void main(String[] args){ double a,b; a=2.00; b...
double a,b;
a = 2.00;
b = a + 3/2;
System.out.println(b);
猜猜是多少?
竟然是3.0 !!!!!!
为什么不是3.5 ?
a = 2.00;
b = a + 3/2;
System.out.println(b);
猜猜是多少?
竟然是3.0 !!!!!!
为什么不是3.5 ?
|
public class t1{
public static void main(String[] args){
double a,b;
a=2.00;
b=a+(double)3/2;
System.out.println(b);
}
}
public static void main(String[] args){
double a,b;
a=2.00;
b=a+(double)3/2;
System.out.println(b);
}
}
|
java就是这样的,把3/2改成3.0/2或者3/2.0之类的即可
|
3 和 2 都是按作int 处理的 所以他们运算出来的结果也是整形 小数点后的部分就切掉了 java就是这样
其实 C C++都是这样
其实 C C++都是这样
|
或者用b=a+3.0/2;
这也惊人?
这也惊人?
|
同意sunni说法,虽然你的a,b都声明为double了,但是在你的代码中3/2,系统还是遵照int型来处理的,虽然结果为1.5但由于是int型的计算,所以就取值为1了,你可以该成3.0/2,或者3/2.0或者3.0/2.0都是,java会自动转换类型的.谢谢.
|
同意outer2000的说发用double将3/2进行转换即可
|
这是正确的结果,惊讶什么?
|
CC++都是这样的没什么稀奇的.