BigDecimal类
1.由于在运算的时候,float类型和double很容易丢失精度,在金融、银行等对数值精度要求非常高的领域里面,就不能使用float或double了,为了能精确的表示、计算浮点数,Java提供了BigDecimal
2.:如果对计算的数据要求高精度时,必须使用BigDecimal类;
3. //开发时推荐通过传入字符串的方式 :
BigDecimal bd3 = new BigDecimal("2.0");
BigDecimal bd4 = new BigDecimal("1.1");
System.out.println(bd3.subtract(bd4));
DecimalFormat类
1.在一些金融或者银行的业务里面,会出现这样千分位格式的数字,¥123,456.00,表示人民币壹拾贰万叁仟肆佰伍拾陆元整,java.text包下提供了一个DecimalFormat的类可以满足这样的需求。
2.//创建数字格式化对象
//需求:加入千分位.
DecimalFormat df =new DecimalFormat("###,###");
//开始格式化
System.out.println(df.format(1234567)); //"1,234,567"
//加入千分位,保留2位小数
DecimalFormat df1 =new DecimalFormat("###,###.##");
System.out.println(df1.format(1234567.123)); //"1,234,567.12"
//加入千分位,保留4位小数,并且不够补0
DecimalFormat df2 =new DecimalFormat("###,###.0000");
System.out.println(df2.format(1234567.123));