BigDecimal保留小数位

  • Post author:
  • Post category:其他

package com.algorithms;

import java.math.BigDecimal;
import java.util.Scanner;

/**
 * 调和级数求和
 * @author LYY
 *
 */
public class TiaoHeJiShuTest {

	public static void main(String[] args) {
		
		System.out.println("请输入一个正整数:");
		Scanner scanner = new Scanner(System.in);
		int num = scanner.nextInt();
		double sum = 0.0;
		for(int i=1;i<=num;i++){
			sum += 1.0/i;
		}
		BigDecimal bigDecimal = new BigDecimal(sum);
		System.out.println("调和级数的和为 : " + sum);
		//保留两位小数,四舍五入   四舍五入模式到正无穷
		System.out.println("调和级数的和为 : " + bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP));
		//保留两位小数,四舍五入   ROUND_CEILING  四舍五入到正无穷
		System.out.println("调和级数的和为 : " + bigDecimal.setScale(2, BigDecimal.ROUND_CEILING));
		//保留两位小数,四舍五入   ROUND_DOWN  向0的方向进行四舍五入
		System.out.println("调和级数的和为 : " + bigDecimal.setScale(2, BigDecimal.ROUND_DOWN));
		//保留两位小数,四舍五入   ROUND_FLOOR  向负无穷的方向进行四舍五入
		System.out.println("调和级数的和为 : " + bigDecimal.setScale(2, BigDecimal.ROUND_FLOOR));
		//ROUND_HALF_DOWN  保留两位小数,四舍五入 向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入
		System.out.println("调和级数的和为 : " + bigDecimal.setScale(2, BigDecimal.ROUND_HALF_DOWN));
		//ROUND_HALF_EVEN  保留两位小数,向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位数是奇数,使用ROUND_HALF_UP ,如果是偶数,使用ROUND_HALF_DOWN 
		System.out.println("调和级数的和为 : " + bigDecimal.setScale(2, BigDecimal.ROUND_HALF_EVEN));
		//ROUND_HALF_DOWN  保留两位小数,向远离0的方向进行四舍五入
		System.out.println("调和级数的和为 : " + bigDecimal.setScale(2, BigDecimal.ROUND_UP));
		
	}
}

这里写图片描述

在这里插入图片描述


版权声明:本文为u012934325原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。