黑马程序员技术交流社区
标题:
如何把float类型变量的平均值转变成只有两位小数?
[打印本页]
作者:
Maple_枫
时间:
2014-4-2 16:09
标题:
如何把float类型变量的平均值转变成只有两位小数?
本帖最后由 Maple_枫 于 2014-4-5 11:37 编辑
//所需变量
private int on;
private String name;
private int age;
private float java;
private float c_shar;
private float html;
private float sql;
private float sum;
private float avg;
//平均值的赋取函数
public void setAvg()
{
this.avg=sum/4;
}
public float getAvg()
{
return avg;
}
public static void sumRanking(Student[] arr)//按总分排序
{
for(int x=0;x<arr.length-1;x++)
{
for(int y=x+1;y<arr.length;y++)
{
if(arr[x]!=null&&arr[y]!=null)
{
if(arr[x].getSum()<arr[y].getSum())
{
Student t=arr[x];
arr[x]=arr[y];
arr[y]=t;
}
}
}
}
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
);
}
}
}
作者:
Engle
时间:
2014-4-2 16:17
有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);
作者:
闲人
时间:
2014-4-2 16:20
float x;
float y = (float)(Math.round(x*100))/100;
复制代码
通过四舍五入的方法,把得出的结果,转换成2位小数,第二行中的100,就是转换的条件,
你想换成几位,就用几个0
作者:
xuehuayous
时间:
2014-4-2 16:21
float a = 123.2334f;
float b = (float)(Math.round(a*100))/100;
把a乘以100后四舍五入,再除以100,最后强制转换为float类型,希望对你有帮助!
作者:
_Water
时间:
2014-4-2 16:23
其实把float类型变量变成只有两位小数有多种方法的,本人比较习惯下面的方式,修改后的getAvg()为:
public String getAvg()
{
DecimalFormat fNum = new DecimalFormat("##0.00");
String res = fNum.format(avg);
return res;
}
作者:
Maple_枫
时间:
2014-4-2 16:47
Engle 发表于 2014-4-2 16:17
有2种解决办法:
方法1:
float f = 34.232323;
谢谢:lol
作者:
Engle
时间:
2014-4-2 17:20
不客气,互相帮助嘛
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2