BigDecimal類
1.由于在運算的時候,float類型和double很容易丟失精度,在金融、銀行等對數(shù)值精度要求非常高的領(lǐng)域里面,就不能使用float或double了,為了能精確的表示、計算浮點數(shù),Java提供了BigDecimal
2.:如果對計算的數(shù)據(jù)要求高精度時,必須使用BigDecimal類;
3. //開發(fā)時推薦通過傳入字符串的方式 :
? ? ?? BigDecimal bd3 = new BigDecimal("2.0");
? ? ? ? BigDecimal bd4 = new BigDecimal("1.1");
? ? ? ? System.out.println(bd3.subtract(bd4));
DecimalFormat類
1.在一些金融或者銀行的業(yè)務(wù)里面,會出現(xiàn)這樣千分位格式的數(shù)字,¥123,456.00,表示人民幣壹拾貳萬叁仟肆佰伍拾陸元整,java.text包下提供了一個DecimalFormat的類可以滿足這樣的需求。
2.//創(chuàng)建數(shù)字格式化對象
//需求:加入千分位.
DecimalFormat df =new DecimalFormat("###,###");
//開始格式化
System.out.println(df.format(1234567)); //"1,234,567"
//加入千分位,保留2位小數(shù)
DecimalFormat df1 =new DecimalFormat("###,###.##");
System.out.println(df1.format(1234567.123)); //"1,234,567.12"
//加入千分位,保留4位小數(shù),并且不夠補0
DecimalFormat df2 =new DecimalFormat("###,###.0000");
System.out.println(df2.format(1234567.123));