BigDecimal类
文章目录
在计算机中,绝大多数浮点数是无法精确存储的,只能保存该浮点数的近似值,如果单纯使用运算符来进行运算,很容易造成精度损失的问题,如下代码所示:
public static void main(String[] args) {
double d1 = 1.0;
double d2 = 0.9;
System.out.println(d1 - d2);
double result = (1.4 - 0.5) / 0.9;
System.out.println(result);
}
通过我们的数学运算应该得到0.1和1这两个答案,但是运行程序之后却得到的不是这两个答案,运行结果如下所示:
0.09999999999999998
0.9999999999999999
从运行结果可以看出,得到的结果只是我们计算结果的一个近似值,为了避免这些精度损失,我们可以采用BigDecimal类来进行更高精度的计算。
构造方法
BigDecimal类针对所有的基本数据类型都有构造方法,同时字符串类型的数字也可以进行构造,几个常用的构造方法如下所示。
方法 | 功能 |
---|---|
BigDecimal(int) | 创建一个具有参数所指定整数值的对象 |
BigDec |