黑马程序员技术交流社区

标题: 新人求帮助 Overload add方法 double方法疑问 [打印本页]

作者: 李培根    时间: 2012-11-20 18:45
标题: 新人求帮助 Overload add方法 double方法疑问
本帖最后由 李培根 于 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)
作者: 奚华    时间: 2012-11-20 20:41
double或者float在计算中存储是会有误差的,这是因为就算机中用的是二进制而我们现实生活中是十进制,我们用十进制可以准确无误的表示0.1,但是在计算机中0.1是无法准确表示的存在着误差,这就像我们生活中无法无法准确用小数表示1/3一样。需要弄懂这些的话建议你去看看IEE754规范,这个规范规定了计算机中如何存储小数,这种存储方式是存在这限制的,精度限制,范围限制
作者: 李培根    时间: 2012-11-21 10:19
奚华 发表于 2012-11-20 20:41
double或者float在计算中存储是会有误差的,这是因为就算机中用的是二进制而我们现实生活中是十进制,我们 ...

了解了   感谢帮助了
作者: 郑传庆    时间: 2012-11-21 10:41
学习了         




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2