创建BigDecimal对象
package com.shengda.Demo7BigDecimal;
import java.math.BigDecimal;
public class MyBigDecimalDemo2 {
public static void main(String[] args) {
BigDecimal bd1 = new BigDecimal(10.0);
BigDecimal bd2 = new BigDecimal("0.3");
System.out.println(bd1);
System.out.println(bd2);
}
}
BigDecimal类的常用方法
作用:可以用来精确计算
如果想要进行精确运算,要使用字符串的构造
// public BigDecimal add (另一个BigDecimal对象) // 加法
// public BigDecimal subtract (另一个BigDecimal对象) // 减法
// public BigDecimal multiply(另一个BigDecimal对象) // 乘法
// public BigDecimal divide (另一个BigDecimal对象) // 除法
在代码中的用法
package com.shengda.Demo7BigDecimal;
import java.math.BigDecimal;
public class MyBigDecimalDemo3 {
// 如果想要进行精确运算,那么请使用字符串的构造
public static void main(String[] args) {
// BigDecimal bd1 = new BigDecimal(0.1);
// BigDecimal bd2 = new BigDecimal(0.2);
BigDecimal bd1 = new BigDecimal("0.1");
BigDecimal bd2 = new BigDecimal("0.2");
// public BigDecimal add (另一个BigDecimal对象) // 加法
BigDecimal add = bd1.add(bd2);
System.out.println(add);
System.out.println(0.1+0.2);
// public BigDecimal subtract (另一个BigDecimal对象) // 减法
BigDecimal subtract = bd1.subtract(bd2);
System.out.println("差为"+subtract);
// public BigDecimal multiply(另一个BigDecimal对象) // 乘法
BigDecimal multiply = bd1.multiply(bd2);
System.out.println("乘积为"+multiply);
// public BigDecimal divide (另一个BigDecimal对象) // 除法
BigDecimal divide = bd1.divide(bd2);
System.out.println("商为"+divide);
}
}
结论
1.BigDecimal是用来进行精确计算的
2.创建BigDecimal对象,构造方法使用参数类型为字符串的
3.四则运算中的除法,如果除不尽请使用divide的三个参数的方法
divide的示例
package com.shengda.Demo7BigDecimal;
import java.math.BigDecimal;
public class MyBigDecimalDemo4 {
public static void main(String[] args) {
BigDecimal bd1 = new BigDecimal("0.3");
BigDecimal bd2 = new BigDecimal("4");
// BigDecimal divide = bd1.divide(bd2);
// System.out.println(divide);
// 参数1:表示参数运算的另一个对象
// 参数2:表示小数点后精确到多少位
// 参数3:舍入模式
// 进一法 BigDecimal.ROUND_UP
// 去尾法 BigDecimal.ROUND_FLOOR
// 四舍五入法 BigDecimal.ROUND_HALF_UP
// BigDecimal divide = bd1.divide(bd2, 2, BigDecimal.ROUND_UP); // 进一法 3.34
BigDecimal divide = bd1.divide(bd2, 2, BigDecimal.ROUND_FLOOR); // 去尾法 3.33
// BigDecimal divide = bd1.divide(bd2, 2, BigDecimal.ROUND_HALF_UP); // 四舍五入 3.33
System.out.println(divide);
}
}