BigDecimal 加減乘除及對比

  1. BigDecimal介紹(來自百度百科)
    1. Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數進行精確的運算。雙精度浮點型變量double可以處理16位有效數。在實際應用中,需要對更大或者更小的數進行運算和處理。float和double只能用來做科學計算或者是工程計算,在商業計算中要用java.math.BigDecimal。BigDecimal所創建的是對象,我們不能使用傳統的+、-、*、/等算術運算符直接對其對象進行數學運算,而必須調用其相對應的方法。方法中的參數也必須是BigDecimal的對象。構造器是類的特殊方法,專門用來創建對象,特別是帶有參數的對象。
      
       
      BigDecimal bd1 = new BigDecimal("100");  
      BigDecimal bd2 = new BigDecimal("50");  
      BigDecimal bd3 = null;  
      //加法  
      bd3 =  bd1.add(bd2);       
      System.out.println("和 是:" +bd3);  
      //減法  
      bd3 = bd1.subtract(bd2);  
      System.out.println("差  是:" + bd3);  
        
      //乘法  
      bd3 = bd1.multiply(bd2);  
      System.out.println("積  是:" + bd3);  
        
      //除法  
      bd3 = bd1.divide(bd2);  
      System.out.println("商  是:" + bd3); 
  2. NumberFormat格式化以及例子(來自百度百科)
    1. 由於NumberFormat類的format()方法可以使用BigDecimal對象作爲其參數,可以利用BigDecimal對超出16位有效數字的貨幣值,百分值,以及一般數值進行格式化控制。 以利用BigDecimal對貨幣和百分比格式化爲例。首先,創建BigDecimal對象,進行BigDecimal的算術運算後,分別建立對貨幣和百分比格式化的引用,最後利用BigDecimal對象作爲format()方法的參數,輸出其格式化的貨幣值和百分比.
       
      BigDecimal bigLoanAmount = new BigDecimal("具體數值");   //創建BigDecimal對象
      BigDecimal bigInterestRate = new BigDecimal("具體數值");
      BigDecimal bigInterest = bigLoanAmount.multiply(bigInterestRate); //BigDecimal運算
      NumberFormat currency = NumberFormat.getCurrencyInstance();    //建立貨幣格式化引用
      NumberFormat percent = NumberFormat.getPercentInstance();     //建立百分比格式化用
      percent.setMaximumFractionDigits(3);               //百分比小數點最多3位
      //利用BigDecimal對象作爲參數在format()中調用貨幣和百分比格式化
      System.out.println("Loan amount:\t" + currency.format(bigLoanAmount));
      System.out.println("Interest rate:\t" + percent.format(bigInterestRate));
      System.out.println("Interest:\t" + currency.format(bigInterest));
      
      Loan amount:  ¥129,876,534,219,876,523.12
      Interest rate: 8.765%
      Interest:  ¥11,384,239,549,149,661.69
      常見用法:
      初始化 BigDecimal a= new BigDecimal("1.35");
      對數值取值:
      1.a.setScale(1,BigDecimal.ROUND_DOWN);
      取一位小數,直接刪除後面多餘位數,故取值1.3.
      2.a.setScale(1,BigDecimal.ROUND_UP);
      取一位小數,刪除後面位數,進一位,故取值1.4.
      3.a.setScale(1,BigDecimal.ROUND_HALF_UP);
      取一位小數,四捨五入,故取值1.4.
      4.a.setScale(1,BigDecimal.ROUND_HALF_DOWN);
      取一位小數,五舍六入,故取值1.3.

       
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章