Java BigDecimal 类


BigDecimal

  • 使用基本类型做浮点数运算(即小数运算)会有精度问题,如果要解决这种精度问题,可以使用 BigDecimal;
  • 对于浮点运算,不要使用基本类型,而使用 BigDecimal 类;
public static void main(String[] args) {
System.out.println(0.09 + 0.01);//0.09999999999999999
System.out.println(1.0 - 0.32);//0.6799999999999999
System.out.println(1.015 * 100);//101.49999999999999
System.out.println(1.301 / 100);//0.013009999999999999
}

1. 概述

相关内容具体描述
java.math 使用时需要导包
类声明public class BigDecimal extends Number implements Comparable
描述BigDecimal类提供了算术,缩放操作,舍入,比较,散列和格式转换的操作。提供了更加精准的数据计算方式
  • 注意 BigDecimal 不是继承 Math,而是继承自 Number;
    BigDecimal

2. 构造方法

  • 推荐使用第二种方式,第一种存在精度问题;
构造方法名描述
BigDecimal(double val)将 double 类型的数据封装为 BigDecimal 对象
BigDecimal(String val)将 BigDecimal 的字符串表示形式转换为 BigDecimal

3. 常用方法

  • BigDecimal 类中使用最多的还是提供的进行四则运算的方法;
类型方法说明
BigDecimaladd(BigDecimal value)加法运算
BigDecimalsubtract(BigDecimal value)减法运算
BigDecimalmultiply(BigDecimal value)乘法运算
BigDecimaldivide(BigDecimal value)除法运算
  • 注意:对于 divide 方法来说,如果除不尽的话,就会出现 java.lang.ArithmeticException 异常,此时可以使用 divide 方法的另一个重载方法:BigDecimal divide(BigDecimal divisor, int scale, int roundingMode): divisor:除数; scale:精确的位数;roundingMode:取舍模式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值