当前位置: 代码迷 >> Java相关 >> [求助] 一个小问题
  详细解决方案

[求助] 一个小问题

热度:383   发布时间:2004-12-01 18:08:00.0
[求助] 一个小问题

public class Test2 { public static void main(String args[]) { System.out.println(0.000001); System.out.println(1/100000); } }

输出的结果怎么不一样啊????

搜索更多相关的解决方案: public  println  System  args  

----------------解决方案--------------------------------------------------------

是不是一个是 0。00000001

一个是0???


----------------解决方案--------------------------------------------------------

0.000001 是DOUBLE 类型的。。所以显示0.00000001

1/10000000 因为整数默认是LONG类型。。。 虽然除的结果是0.000000001

但 只去整数部分。。。。就是1


----------------解决方案--------------------------------------------------------

double (1/10000)就成了。


----------------解决方案--------------------------------------------------------
打错了是(double)1/1000000
----------------解决方案--------------------------------------------------------

Please Note:

System.out.println((double)1/100000);实际上是只把1 cast成double 类型.100000还是int

在JAVA中,double/int得出的结果是double,int/int得出的结果是int

你可以查一些有关IEEE754 floating point number representation就会更清楚原因的 :-)


----------------解决方案--------------------------------------------------------
1/10000!=0.0001
----------------解决方案--------------------------------------------------------
  相关解决方案