本教程告诉你如何在java中对bigdecimal值进行四舍五入,并保留N个小数位。
BigDecimal的方法是setScale 和round ,用于对所需的数值进行舍入。
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
}
}