【蓝桥杯】【Java】【成绩分析【第十一届】【省赛】【A组】】【简要总结四舍五入方法】

传送门

package myPackage;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
    
    
	static int N;
	static double sum;
	public static void main(String[]args) {
    
    
		Scanner in=new Scanner(System.in);
		N=in.nextInt();
		int[] arr=new int[N];
		for(int i=0;i<N;i++) {
    
    
			arr[i]=in.nextInt();
			sum+=arr[i];
		}
		BigDecimal SUM=BigDecimal.valueOf(sum/N);
		Arrays.sort(arr);
		System.out.println(arr[N-1]);
		System.out.println(arr[0]);
		System.out.println(SUM.setScale(2, BigDecimal.ROUND_HALF_UP));
	}
}


Java对小数四舍五入的方法:
Ⅰ运用BigDecimal类
创建一个BigDecimal的对象:

BigDecimal M=BigDecimal.valueOf(m);

调用setScale方法:

M.setScale(2, BigDecimal.ROUND_HALF_UP)

注:第二个参数RoundingMode这:
在这里插入图片描述

	ROUND_HALF_UP//最近数字舍入(5进)。这是我们最经典的四舍五入。
	
	ROUND_CEILING//向正无穷方向舍入。向正最大方向靠拢。若是正数,舍入行为类似于ROUND_UP,若为负数,舍入行为类似于ROUND_DOWN。Math.round()方法就是使用的此模式。
	ROUND_FLOOR//向负无穷方向舍入。向负无穷方向靠拢。若是正数,舍入行为类似于ROUND_DOWN;若为负数,舍入行为类似于ROUND_UP。
	
	ROUND_UP//远离零方向舍入。向绝对值最大的方向舍入,只要舍弃位非0即进位。
	ROUND_DOWN//趋向零方向舍入。向绝对值最小的方向输入,所有的位都要舍弃,不存在进位情况。
	
	ROUND_HALF_DOWN//最近数字舍入(5舍)。在这里5是要舍弃的。
	ROUND_HALF_EVEN//银行家舍入法。
	ROUND_UNNECESSARY//计算结果是精确的,不需要舍入模式。

Ⅱ还可以用String.format

String.format("%.2f",m)

Ⅲ如果只需要输出,还可以用printf()方法四舍五入!

System.out.printf("%.2f",m);

有借鉴这篇博文!写的很详细!
https://blog.csdn.net/maofenghua/article/details/75449061

猜你喜欢

转载自blog.csdn.net/m0_57937908/article/details/120805346
今日推荐