- bidDecimal
在java.math包中提供了BigDecimal,用来对超过16位有效的数进行精确运算,
double双精度变量可以处理16位有效数字,float和double只能做工程计算,但是在商业中要用BidDecimal来处理数据,
BigDecimal创建的是对象,不能使用运算符来直接进行数学运算,必须要调用其方法来进行运算,参数必须是bigDecimal对象, - 构造器 创建对象
BigDecimal bigDecimal = new BigDecimal(123);//参数是int
BigDecimal bigDecimal1 = new BigDecimal(12341513113L);//参数是long
BigDecimal bigDecimal2 = new BigDecimal("987654321");//参数是String
BigDecimal bigDecimal3 = new BigDecimal(2.3);//参数是double
System.out.println(bigDecimal);
System.out.println(bigDecimal1);
System.out.println(bigDecimal2);
System.out.println(bigDecimal3);
注意参数为double类型的数据,带入到构造器中其结果有一定的不可预知性,
如果参数必须是double类型可以转化成字符串啊,
- BigDecimal加减乘除运算
对于常用的加减乘除运算,bigdecimal类提供了相对应的方法。
public BigDecimal add(Decimal value);//加法;
subtract(value) ;//减法
multiply(value);//乘法
divide(vlaue);//除法
package com.bjsxt;
import com.bjsxt.pojo.Users;
import java.math.BigDecimal;
import static java.math.BigDecimal.*;
public class Test {
public static void main(String[] args) {
BigDecimal a = new BigDecimal(4.4);
BigDecimal b = new BigDecimal(1.1);
BigDecimal c = new BigDecimal("5");
BigDecimal d = new BigDecimal(2);
System.out.println(a.divide(b,0,ROUND_DOWN));//4.4/1.1
System.out.println(a.add(b));//4.4+1.1
System.out.println(a.subtract(b));//4.4-1.1
System.out.println(a.multiply(d));//4.4*2
// ROUND_CEILING; //向正无穷方向舍入
// ROUND_DOWN; //向零方向舍入
// ROUND_FLOOR;//向负无穷舍入
// ROUND_UNNECESSARY;//计算结果是精确的
}
}
- 格式化
package com.bjsxt;
import com.bjsxt.pojo.Users;
import java.math.BigDecimal;
import java.text.NumberFormat;
import static java.math.BigDecimal.*;
public class Test {
public static void main(String[] args) {
BigDecimal a = new BigDecimal(4.4);
BigDecimal b = new BigDecimal(0.1111);
BigDecimal c = new BigDecimal("5");
BigDecimal d = new BigDecimal(3);
BigDecimal he = a.add(b);
//建立货币格式化
NumberFormat currencyInstance = NumberFormat.getCurrencyInstance();
//建立百分比格式化
NumberFormat percentInstance = NumberFormat.getPercentInstance();
percentInstance.setMaximumFractionDigits(3);//百分比的小数点后几位
System.out.println(currencyInstance.format(a));
System.out.println(currencyInstance.format(he));
System.out.println(percentInstance.format(a));
System.out.println(percentInstance.format(b));
}
}



