如何在java中对bigdecimal值进行四舍五入:BigDecimal setScale方法介绍及实例

320 阅读1分钟

本教程告诉你如何在java中对bigdecimal值进行四舍五入,并保留N个小数位。

BigDecimal的方法是setScaleround ,用于对所需的数值进行舍入。

BigDecimal setScale方法

该方法用于返回一个具有给定比例和舍入模式的BigDecimal对象。

下面是一个语法:

    public BigDecimal setScale(int newScale, RoundingMode roundingMode) 

newScale是一个数字,用于限制Bigdecimal的精度或小数位数。 RoundingMode:RoundingMode是一个枚举,包含以下常量

  • 上限
  • 楼板
  • 半上
  • 下降一半
  • 半数
  • 不适用

该方法会抛出算术异常

BigDecimal是一个不可改变的类,setRound返回一个新的对象。

BigDecimal四舍五入方法

如何将BigDecimal舍入为最接近的整数或整数值

这个例子将bigdecimal的值舍入到最接近的整数值。

它可以通过两种方式实现,一种是使用setScale,第二种是使用round方法。

例如,如果给定的值是789123.123456789,输出是789123。

setScale(0, RoundingMode.HALF_UP)返回值:返回完整的值,并删除精度

下面是一个使用setScale方法的示例代码

import java.math.BigDecimal;
import java.math.RoundingMode;

public class BigDecimalTest {
    public static void main(String[] args) {
        BigDecimal bd = new BigDecimal(789123.123456789);
        BigDecimal output = bd.setScale(0, RoundingMode.HALF_DOWN);
        System.out.println(output); //789123
        BigDecimal output1 = bd.setScale(0, RoundingMode.HALF_DOWN);
        System.out.println(output1); //789123
        
    }
}

下面是一个带有round方法的示例代码

public class BigDecimalTest {
    public static void main(String[] args) {
        BigDecimal bd = new BigDecimal(789123.123456789);
        BigDecimal output = bd.round(new MathContext(6, RoundingMode.HALF_UP));

        System.out.println(output); //789123
        BigDecimal output1= bd.round(new MathContext(6, RoundingMode.HALF_UP));
        System.out.println(output1); //789123
    }
}