题目描述
小乐乐输入三科成绩,请编程帮他输出三科成绩总分及平均分。
输入描述
一行,三科成绩(浮点数),成绩之间用一个空格隔开。
输出描述
一行,总分和平均分(小数点后保留两位),用一个空格隔开。
示例1
输入
79.5 80.0 98.0
输出
257.50 85.83
代码实现
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
String[] strs=bf.readLine().split(" ");
Double sum=0.00;
Double ave=0.00;
for(int i=0;i<strs.length;i++){
sum=sum+Double.valueOf(strs[i]);
}
ave=sum/strs.length;
System.out.println(String.format("%.2f",sum)+" "+String.format("%.2f",ave));
}
}
总结
“小数点后保留两位”的方法
例如:double f=111314.9999
- String的format方法
System.out.println(String.format(“%.2f”,f));
- DecimalFormat的format方法
DecimalFormat df=new DecimalFormat(“#.00”);
System.out.println(df.format(f));
- BigDecimal的setScale方法
BigDecimal bg=new BigDecimal(f);
double f1=bg.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(f1);
- NumberFormat的setMaximumFractionDigits方法
NumberFormat nf=new NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
System.out.println(nf.format(f));
代码实现
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class format{
double f=111314.9999;
//方法一的实现
public void m1(){
System.out.println(String.format(“%.2f”,f));
}
//方法二的实现
public void m2(){
DecimalFormat df=new DecimalFormat(“#.00”);
System.out.println(df.format(f));
}
//方法三的实现
public void m3(){
BigDecimal bg=new BigDecimal(f);
double f1=bg.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(f1);
}
//方法四的实现
public void m4(){
NumberFormat nf=new NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
System.out.println(nf.format(f));
}
public static void main(String[] args){
format f=new format();
f.m1();
f.m2();
f.m3();
f.m4();
}
}