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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 莫若吻 中级黑马   /  2014-4-23 23:09  /  3078 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 莫若吻 于 2014-4-26 09:27 编辑

练习题:定义一个类MathDemo,类的内部重载round方法,分别实现对单精度,双精度类型数据进行四舍五入的功能,要处理的实型数据作为参数,方法体最后将得到的结果返回
在main方法中定义float与double类型变量,分别赋初值,创建mathDemo类的对象,调用round()方法,将结果显示在屏幕上。

下面的代码是我自己整理的。有些太过繁琐了,不知道谁有更简单的方法。最好可以将四舍五入的方法过程显示出来,而不是直接调用系统的……

class MathDemo{
   public static int round(float x){
   int y=(int)x;
   float a=x-y;  //a为整数的小数部分
   if(x>=0)
   {
          if(a>0.5)
                 return y+1;
          else
                 return y;
   }else
   {
          if(a>0.5)
               return y-1;
          else
               return y;
   }
}
public static int round(double x){
       int y=(int)x;
       double a=x-y;//a为整数的小数部分
       if(x>=0)
       {
                if(a>0.5)
                       return y+1;
                else
                       return y;
       }else
       {
                if(a>0.5)
                       return y-1;
                else
                       return y;
        }
   }
}
class Test15{
     public static void main(String[] args){
       float f=2.3f;
       double d=19.7;
       MathDemo arrays=new MathDemo();
           //arrays.round(f);
           //arrays.round(d);
        System.out.println(f+"四舍五入后的值为"+arrays.round(f));
        System.out.println(d+"四舍五入后的值为"+arrays.round(d));
    }
}

点评

认真去看视频吧,视频中讲得很详细  发表于 2014-4-24 19:48

评分

参与人数 1黑马币 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

9 个回复

倒序浏览
package cn.itheima.luntan;

public class MathDemo {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                MathDemo md=new MathDemo();
                float num1=12.445f;
                double num2=12.54;
                float num3=md.round(num1);
                double num4=md.round(num2);
                System.out.println(num3);
                System.out.println(num4);
               

        }

        private  float round(float num1) {
                // TODO Auto-generated method stub
               
                return (Math.round(num1));
        }
        private double round(double num2){
       
                return (Math.round(num2));
               
               
               
        }


}

点评

感谢……那个四舍五入的方法过程能显示一下么?  发表于 2014-4-25 15:26
回复 使用道具 举报
龙健 发表于 2014-4-24 19:12
package cn.itheima.luntan;

public class MathDemo {

四舍五入的方法是Math类自带的,建议你还是去看看视频吧。。。。
回复 使用道具 举报
实际上学习写一些API方法时,可以去参考以下API源代码。round()方法可以到Math类里看看源码。
回复 使用道具 举报
使用三元运算符,代码上面看起来会比较简洁干净点!
回复 使用道具 举报
你去查看下math这个类  有四舍五入 的方法!!
回复 使用道具 举报
pray 高级黑马 2014-4-26 00:31:37
7#
我是来收集资料滴...
回复 使用道具 举报
我是来看看会不会的。 基础很重要!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马