Java的BigDecimal类
Java的BigDecimal类
-
位置:java.math包中
-
作用:精确计算浮点数
-
创建方式:BigDecimal bd = new BigDecimal("1.0");
-
方法:
- BigDecimal add(BigDecimal bd); 加法
- BigDecimal subtract(BigDecimal bd); 减法
- BigDecimal multiply(BigDecimal bd); 乘法
- BigDecimal divide(BigDecimal bd); 除法
-
除法:divide(BigDecimal bd,int scal,RoundingMode mode)
- 参数scal:指定精确到小数点后几位
- 参数mode:
- 指定小数部分的取舍模式,通常采用四舍五入的模式
- 取值为BigDecimal.Round_HALF_UP
package com.cnblogs;
import java.math.BigDecimal;
public class TestBigDecimal {
/*
本类用于测试BigDecimal类
*/
public static void main(String[] args) {
double a = 1.0;
double b = 0.9;
System.out.println(a - b);//0.09999999999999998
//BigDecimal 大的浮点数精确计算
//最好不要用double类型作为构造函数的参数,要用String类型作为构造函数的参数,不然依旧不精确。
BigDecimal bd1 = new BigDecimal("1.0");
BigDecimal bd2 = new BigDecimal("0.9");
//减法
BigDecimal r1 = bd1.subtract(bd2);
System.out.println(r1);//0.1
//加法
BigDecimal r2 = bd1.add(bd2);
System.out.println(r2);//1.9
//乘法
BigDecimal r3 = bd1.multiply(bd2);
System.out.println(r3);//0.90
//除法 (1.4-0.5)/0.9
BigDecimal r4 = new BigDecimal("1.4").subtract(new BigDecimal("0.5")).divide(new BigDecimal("0.9"));
System.out.println(r4);//1
BigDecimal r5 = new BigDecimal("10").divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);
System.out.println(r5);//3.33
}
}

浙公网安备 33010602011771号