方法使用
scale() 方法用于格式化小数点
setScale(1,BigDecimal.ROUND_DOWN) 直接删除多余的小数位,如2.35会变成2.3
setScale(1,BigDecimal.ROUND_UP) 进位处理(无论小数如何),2.35变成2.4
setScale(1,BigDecimal.ROUND_HALF_UP) 四舍五入,2.35变成2.4(目前最常用的金额处理方法)
setScaler(1,BigDecimal.ROUND_HALF_DOWN) 四舍五入,2.35变成2.3,如果是5则向下舍(6及以上则向上入)
代码示例
import java.math.BigDecimal;
/**
* @author yanghao
* @version SetScale.java, v 0.1 2019-12-24 19:56
*/
public class SetScale {
public static void main(String[] args){
BigDecimal money = new BigDecimal("2.35");
//格式化小数点
System.out.println("scale == " + money.scale());
//直接删除多余的小数位,如2.35会变成2.3
System.out.println("ROUND_DOWN == " + money.setScale(1, BigDecimal.ROUND_DOWN));
//进位处理(无论小数如何),2.35变成2.4
System.out.println("ROUND_UP == " + money.setScale(1, BigDecimal.ROUND_UP));
//四舍五入,2.35变成2.4(目前最常用的金额处理方法)
System.out.println("ROUND_HALF_UP == " + money.setScale(1, BigDecimal.ROUND_HALF_UP));
//四舍五入,2.35变成2.3,如果是5则向下舍(6及以上则向上入)
System.out.println("ROUND_HALF_DOWN == " + money.setScale(1, BigDecimal.ROUND_HALF_DOWN));
}
}
运行结果
scale == 2
ROUND_DOWN == 2.3
ROUND_UP == 2.4
ROUND_HALF_UP == 2.4
ROUND_HALF_DOWN == 2.3