关于java中double相加的问题

碰到一个很奇怪的现象的,当计算两个数字的,时候会出现这种奇异的现象,希望能得到解释

System.out.println("1:"+isMonthPay("11.00","11"));
System.out.println("2:"+isMonthPay("11",""));
System.out.println("3:"+isMonthPay("0","2"));
System.out.println("4:"+isMonthPay("1000.11","122"));
System.out.println("5:"+isMonthPay("999","888.11"));
System.out.println("6:"+isMonthPay("3232.11","98766"));
System.out.println("7:"+isMonthPay("23232","3232"));

public static String isMonthPay(String sub_pay,String cust_pay){
double a=0.00;
double b=0.00;
if (!StringUtils.isBlank(sub_pay)) {
a=Double.parseDouble(sub_pay);
}
if (!StringUtils.isBlank(cust_pay)) {
b=Double.parseDouble(cust_pay);
}
System.out.println("a:"+a+"--b:"+b);
double c=0.00;
if(a+b>0){
c=a+b;
}
return c+"";
}


输出结果:

a:11.0--b:11.0
1:22.0
a:11.0--b:0.0
2:11.0
a:0.0--b:2.0
3:2.0
a:1000.11--b:122.0
4:1122.1100000000001--这个值
a:999.0--b:888.11
5:1887.1100000000001--还有这个值很奇怪,试了一下当不是 1122.11 或者 1887.11的时候不会出现这种情况,求解释,谢谢
a:3232.11--b:98766.0
6:101998.11
a:23232.0--b:3232.0
7:26464.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值