标题:[求助] 一个小问题
只看楼主
刘明
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2004-12-1
 问题点数:0 回复次数:6 
[求助] 一个小问题

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

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

搜索更多相关主题的帖子: public println System args 
2004-12-01 18:08
jeremydomett
Rank: 2
等 级:新手上路
威 望:3
帖 子:312
专家分:0
注 册:2004-6-10
得分:0 

是不是一个是 0。00000001

一个是0???


热爱编程........永不放弃.........
2004-12-03 18:16
jeremydomett
Rank: 2
等 级:新手上路
威 望:3
帖 子:312
专家分:0
注 册:2004-6-10
得分:0 

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

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

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


热爱编程........永不放弃.........
2004-12-04 18:42
xiayongjie
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2004-12-3
得分:0 

double (1/10000)就成了。

2004-12-06 20:19
xiayongjie
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2004-12-3
得分:0 
打错了是(double)1/1000000
2004-12-06 20:21
Anstey
Rank: 1
等 级:新手上路
帖 子:94
专家分:0
注 册:2004-4-14
得分:0 

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~~
2004-12-06 22:29
pyzheng
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2004-12-5
得分:0 
1/10000!=0.0001

-----------人間太苦﹐成仙太難------------
2004-12-14 11:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-8687-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.920220 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved