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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李培根 金牌黑马   /  2012-11-20 18:45  /  1193 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李培根 于 2012-11-21 10:19 编辑

public class OverloadDemo {

        /**函数的重载
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
               
                int a = add(3,5);
                System.out.println(a);
               double b = add(3.3,5.1);
                System.out.println(b);

        }
        //加法运算两个整数的和
        public static int add (int a,int b){
                return a+b;               
        }
        //加法运算两个小数的和
        public static double add (double a,double b){
                return a+b;
        }
        //加法运算三个整数的和
        public static int add (int a, int b,int c){
                return a+b+c;
        }
}



打印结果为

8
8.399999999999999(不理解为什么不是8.4)

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 神马都是浮云

查看全部评分

3 个回复

倒序浏览
double或者float在计算中存储是会有误差的,这是因为就算机中用的是二进制而我们现实生活中是十进制,我们用十进制可以准确无误的表示0.1,但是在计算机中0.1是无法准确表示的存在着误差,这就像我们生活中无法无法准确用小数表示1/3一样。需要弄懂这些的话建议你去看看IEE754规范,这个规范规定了计算机中如何存储小数,这种存储方式是存在这限制的,精度限制,范围限制

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
奚华 发表于 2012-11-20 20:41
double或者float在计算中存储是会有误差的,这是因为就算机中用的是二进制而我们现实生活中是十进制,我们 ...

了解了   感谢帮助了
回复 使用道具 举报
学习了         
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马