[求助] 一个小问题
public class Test2 { public static void main(String args[]) { System.out.println(0.000001); System.out.println(1/100000); } }
输出的结果怎么不一样啊????
public class Test2 { public static void main(String args[]) { System.out.println(0.000001); System.out.println(1/100000); } }
输出的结果怎么不一样啊????
0.000001 是DOUBLE 类型的。。所以显示0.00000001
1/10000000 因为整数默认是LONG类型。。。 虽然除的结果是0.000000001
但 只去整数部分。。。。就是1
double (1/10000)就成了。
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就会更清楚原因的 :-)