编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛  
 
全能 ASP / PHP / ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
发新话题
打印

[求助] 一个小问题

[求助] 一个小问题

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

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

TOP

是不是一个是 0。00000001

一个是0???

热爱编程........永不放弃.........

TOP

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

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

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

热爱编程........永不放弃.........

TOP

double (1/10000)就成了。

TOP

打错了是(double)1/1000000

TOP

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就会更清楚原因的 :-)

Anstey. Cheers. I love CAPPUCCINO~~

TOP

1/10000!=0.0001
-----------人間太苦﹐成仙太難------------

TOP

发新话题