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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Maple_枫 于 2014-4-5 11:37 编辑
  1. //所需变量
  2.         private int on;
  3.         private String name;
  4.         private int age;
  5.         private float java;
  6.         private float c_shar;
  7.         private float html;
  8.         private float sql;
  9.         private float sum;
  10.         private float avg;
  11. //平均值的赋取函数
  12. public void setAvg()
  13.         {
  14.                 this.avg=sum/4;
  15.         }
  16.         public float getAvg()
  17.         {
  18.                 return avg;
  19.         }
  20. public static void sumRanking(Student[] arr)//按总分排序
  21.         {
  22.                 for(int x=0;x<arr.length-1;x++)
  23.                 {
  24.                         for(int y=x+1;y<arr.length;y++)
  25.                         {
  26.                                 if(arr[x]!=null&&arr[y]!=null)
  27.                                 {
  28.                                         if(arr[x].getSum()<arr[y].getSum())
  29.                                         {
  30.                                                 Student t=arr[x];
  31.                                                 arr[x]=arr[y];
  32.                                                 arr[y]=t;
  33.                                         }
  34.                                 }
  35.                         }
  36.                 }
  37.                 Admin.print(arr);
复制代码


//遍历此数组
public static void print(Student[] arr)//遍历Student数组
        {

                System.out.println(mx);
                for(int i=0;i<arr.length;i++)
                {
                        if(arr!=null)
                        {
                                arr.setSum();
                                arr.setAvg();
                                System.out.println(arr);
                        }
                }
               
        }

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

6 个回复

倒序浏览
有2种解决办法:
方法1:
float f = 34.232323;
BigDecimal b = new BigDecimal(f);
// b.setScale(2, BigDecimal.ROUND_HALF_UP) 表明四舍五入,保留两位小数
float f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();

方法2:
float scale = 34.236323;
DecimalFormat fnum = new DecimalFormat("##0.00");
String dd=fnum.format(scale);
System.out.println(dd);

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
  1. float x;
  2. float y = (float)(Math.round(x*100))/100;
复制代码

通过四舍五入的方法,把得出的结果,转换成2位小数,第二行中的100,就是转换的条件,
你想换成几位,就用几个0
回复 使用道具 举报
float   a   =   123.2334f;  
float   b   =   (float)(Math.round(a*100))/100;
把a乘以100后四舍五入,再除以100,最后强制转换为float类型,希望对你有帮助!
回复 使用道具 举报
其实把float类型变量变成只有两位小数有多种方法的,本人比较习惯下面的方式,修改后的getAvg()为:
public String getAvg()
  {
            DecimalFormat   fNum   =   new   DecimalFormat("##0.00");  
            String   res = fNum.format(avg);      
            return   res;
  }

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
Engle 发表于 2014-4-2 16:17
有2种解决办法:
方法1:
float f = 34.232323;

谢谢:lol
回复 使用道具 举报
不客气,互相帮助嘛
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马