Java setScale方法保留n位小数

使用java.math.BigDecimal类的setScale方法可以设置任意方式的舍入。
方法声明:

public BigDecimal setScale​(int newScale, RoundingMode roundingMode)
  • newScale: 设置新标度值(scale)为newScale;
  • roundingMode: 设置舍入模式,RoundingMode.HALF_UP表示按照四舍五入的模式舍入;
  • 标度(scale):如果是0或者正数,scale即小数点右边的位数;如果是负数,BigDecimal对象代表的值可表示为(unscaledValue × 10− s c a l e ^{-scale}scale)。

例子:

double num = 6.66789d;
num = new BigDecimal(num).setScale(1, RoundingMode.HALF_UP).doubleValue();

输出:

num = 6.7

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