BigDecimal 两位小数 注解
1. 简介
BigDecimal是Java中的一个类,用于精确表示大数和小数。它提供了高精度的计算能力,可以处理任意位数的数字,并且支持各种精确度的舍入方式。在金融、科学计算等领域,BigDecimal被广泛应用。
2. 创建BigDecimal对象
可以通过以下几种方式创建BigDecimal对象: - 使用字符串构造函数:BigDecimal(String val) - 使用double构造函数:BigDecimal(double val) - 使用long构造函数:BigDecimal(long val)
// 使用字符串构造函数创建BigDecimal对象
BigDecimal bd1 = new BigDecimal("123.45");
// 使用double构造函数创建BigDecimal对象
double value = 123.45;
BigDecimal bd2 bigdecimal除法保留小数= new BigDecimal(value);
// 使用long构造函数创建BigDecimal对象
long longValue = 12345;
BigDecimal bd3 = new BigDecimal(longValue);
3. 设置小数位数
在处理金额等需要固定小数位数的场景中,可以使用setScale方法设置小数位数,并指定舍入规则。
// 设置保留两位小数并采用四舍五入规则
bd1 = bd1.setScale(2, RoundingMode.HALF_UP);
常用的舍入规则有: - RoundingMode.UP:向上舍入 - RoundingMode.DOWN:向下舍入 -
RoundingMode.CEILING:向正无穷方向舍入 - RoundingMode.FLOOR:向负无穷方向舍入 - RoundingMode.HALF_UP:四舍五入,5进1(常用) - RoundingMode.HALF_DOWN:四舍五入,5不进1 - RoundingMode.HALF_EVEN:银行家舍入法
4. 精确计算
在进行数值计算时,浮点数存在精度丢失的问题。而BigDecimal类提供了精确计算的方法。
// 加法
BigDecimal sum = bd1.add(bd2);
// 减法
BigDecimal difference = bd1.subtract(bd2);
// 乘法
BigDecimal product = bd1.multiply(bd2);
// 除法,指定保留小数位数和舍入规则
BigDecimal quotient = bd1.divide(bd2, 2, RoundingMode.HALF_UP);
5. 比较大小
可以使用compareTo方法来比较两个BigDecimal对象的大小。
int result = bd1.compareTo(bd2);
if (result > 0) {
    System.out.println("bd1 > bd2");
} else if (result < 0) {
    System.out.println("bd1 < bd2");
} else {
    System.out.println("bd1 == bd2");
}
6. 转换为其他类型
可以使用toXxx方法将BigDecimal对象转换为其他类型的数据。
// 转换为int类型(截断小数部分)
int intValue = bd.intValue();
// 转换为long类型(截断小数部分)
long longValue = bd.longValue();
// 转换为double类型
double doubleValue = bd.doubleValue();
// 转换为字符串类型
String stringValue = bd.toString();
7. 总结
BigDecimal是Java中用于精确表示大数和小数的类,具有高精度的计算能力。通过设置小数位数和舍入规则,可以对BigDecimal对象进行精确计算。在处理金额等需要固定小数位数的场景中,使用BigDecimal可以避免浮点数精度丢失的问题。同时,也提供了比较大小和转换为其他类型的方法。
以上是关于BigDecimal类的介绍和使用方法,希望对你有所帮助!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。