主要在于对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); } }