主要在于对double类型的数字进行四舍五入,并确定小数点后几位,有以下几种方法:
1)System.out.printf();
2)String.format();
3)str.formatted();
4)new BigDeciamal().setScale().doubleValue()
import java.util.*;
import java.math.BigDecimal;
public class Main{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
int countNegative=0;
int countPositive=0;
int sumPositive=0;
for(int i=0;i<n;i++){
int x=scan.nextInt();
if(x<0){
countNegative++;
}
if(x>0){
countPositive++;
sumPositive+=x;
}
}
//也可使用:
// System.out.printf(countNegative+" %.1f",countPositive>0?(double)sumPositive/countPositive:0);
System.out.println(countNegative+" "+String.format("%.1f",countPositive>0?(double)sumPositive/countPositive:0));
// double ave=countPositive>0?new BigDecimal((double)sumPositive/countPositive).setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue():0;
// System.out.println(countNegative+" "+ave);
}
}

京公网安备 11010502036488号