A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ╯两路人_、陌路 中级黑马   /  2012-12-1 22:52  /  1176 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

代码 class  Qiuzhi
{
        public static void main(String[] args)
        {
                double a=0.1,b=0.1,c=0.1;   //初始化数值 并赋值
               
                double x = (a+b+c);          // 求和
               
                if (x==0.3)                      //if语句  和是否等于0.3
                {
                        System.out.println("和等于0.3");   // 输出语句
                }
                //else
                {
                        System.out.println("和不等于0.3");  // 输出语句
                }
               
        }
}           结果 不等于0.3      这有违常理 哈   还有   1.0 - 0.8   的值也不等于0.2  发现 这些浮点类型的值 确实不能按常理推算    求 原因  

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

3 个回复

倒序浏览
不小心写错了··最顶头的那个  代码放错位置了   还有  //else  这个 斜杠忘记去掉了·····0.0  囧
回复 使用道具 举报
楼主大不必惊奇,这是double数据的精确度导致的。
回复 使用道具 举报
王震阳 发表于 2012-12-1 23:04
楼主大不必惊奇,这是double数据的精确度导致的。

晓得了  晓得了  只是 无意间看到的 只是想求个原因哈··
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马