java中两个double值相加
1)doublen=0.01;doublem=0.06;System.out.println(m+n);//0.06999999999999999比实际的0.07小了2)...
1)
double n=0.01;
double m=0.06;
System.out.println(m+n);//0.06999999999999999比实际的0.07小了
2)
double n=0.01;
double m=0.05;
System.out.println(m+n);//0.060000000000000005比实际的0.06大了
2)
double n=0.01;
double m=0.02;
System.out.println(m+n);//0.03
3)
double n=0.01;
double m=0.19;
System.out.println(m+n);//0.2
我只想知道怎么推断出结果大致在什么范围。。比实际值大一些还是小一些还是正好等于?
我问这个的原因是,有一道笔试题,直接就这么问我的。。 展开
double n=0.01;
double m=0.06;
System.out.println(m+n);//0.06999999999999999比实际的0.07小了
2)
double n=0.01;
double m=0.05;
System.out.println(m+n);//0.060000000000000005比实际的0.06大了
2)
double n=0.01;
double m=0.02;
System.out.println(m+n);//0.03
3)
double n=0.01;
double m=0.19;
System.out.println(m+n);//0.2
我只想知道怎么推断出结果大致在什么范围。。比实际值大一些还是小一些还是正好等于?
我问这个的原因是,有一道笔试题,直接就这么问我的。。 展开
3个回答
2013-12-28
展开全部
使用这个处理
java.math.BigDecimal
double n=0.01;
double m=0.06;
java.math.BigDecimal d1=new java.math.BigDecimal(String.valueOf(n));
java.math.BigDecimal d2=new java.math.BigDecimal(String.valueOf(m));
System.out.println(d1.add(d2).doubleValue());
追问
这个我知道,我要问的明明是怎么推断他的值是多少。。。你没看我的问题
追答
简单地,可以认为是java double的“BUG”
百度 java double 精度
有不少讨论
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用java.math.BigDecimal类来处理,查查API里有的
追问
这个我知道,我要问的明明是怎么推断他的值是多少。。。你没看我的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询