| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 546 人关注过本帖
标题:学习中遇到的一点小问题
只看楼主 加入收藏
xu2738461746
Rank: 2
等 级:论坛游民
威 望:1
帖 子:39
专家分:70
注 册:2014-9-22
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:3 
学习中遇到的一点小问题
结果为什么不对?
2
程序代码:
[code][code]import java.math.BigDecimal;

public class AccuratelyFloat {
    public static void main(String[] args){
        double money = 2;
        double price = 1.1;
        double result = money - price;
        System.out.println("非精确计算");
        System.out.println("剩余金额" + result);
        BigDecimal money1 = new BigDecimal("2");
        BigDecimal price1 = new BigDecimal("1.1");
        BigDecimal result1 = money1.subtract(price1);
        System.out.println("精确计算");
        System.out.println("剩余金额" + result);
    }
}
[/code][/code]- 1.1 不是应该为0.9么,为是么出来的是0.8999999
搜索更多相关主题的帖子: result money price 
2015-04-30 11:52
凌风zx
Rank: 8Rank: 8
来 自:万灵娱乐城
等 级:蝙蝠侠
威 望:7
帖 子:88
专家分:790
注 册:2015-4-11
收藏
得分:10 
没错啊 double不能做精确计算
BigDecimal result1 = money1.subtract(price1);
        System.out.println("精确计算");
        System.out.println("剩余金额" + result);//result应该是result1

初出茅庐
2015-04-30 15:02
秦时的明月夜
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:13
帖 子:126
专家分:504
注 册:2013-3-12
收藏
得分:10 
那是近似值……你想呀 double 64 位 位数有限制 那一定是近似值了……近视值就不准……
2015-04-30 15:47
xu2738461746
Rank: 2
等 级:论坛游民
威 望:1
帖 子:39
专家分:70
注 册:2014-9-22
收藏
得分:0 
原来是这样啊,谢了
2015-05-08 22:02
快速回复:学习中遇到的一点小问题
数据加载中...
 
   



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

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