BigDecimal精确计算

来源:互联网 发布:淘宝虚假交易警告2次 编辑:程序博客网 时间:2024/05/17 08:56
import java.math.BigDecimal;public class Test {public static void main(String[] args) {BigDecimal bd1=new BigDecimal("0.1");BigDecimal bd2=new BigDecimal("0.3");BigDecimal add = bd1.add(bd2);//加System.out.println(add.setScale(12, BigDecimal.ROUND_HALF_UP).toString());//结果四舍五入保留12位小数BigDecimal subtract = bd1.subtract(bd2);//减System.out.println(subtract.setScale(12, BigDecimal.ROUND_HALF_UP).toString());//结果四舍五入保留12位小数BigDecimal multiply = bd1.multiply(bd2);//乘System.out.println(multiply.setScale(12, BigDecimal.ROUND_HALF_UP).toString());//结果四舍五入保留12位小数System.out.println(bd1.divide(bd2,12, BigDecimal.ROUND_HALF_DOWN).toString());//除,第一个参数除数,第二个参数保留12位小数,第三个参数四舍五入System.out.println(bd1.compareTo(new BigDecimal("0.11")));//0 相等,1 前面的大,-1 后面的大}}

关于舍入说明:ROUND_HALF_UP 四舍五入,1.5 --》2

ROUND_UP 向上取整,1.1--》2

ROUND_DOWN 向下取整 1.9--》1


----------------------------------------------------------------------------------

初始化 和 常用方法

BigDecimal b1 = new BigDecimal(0);
BigDecimal b2=new BigDecimal(0d);
BigDecimal b3=new BigDecimal("0");
BigDecimal zero = BigDecimal.ZERO;


  1. add(BigDecimal)            BigDecimal对象中的值相加,然后返回这个对象。
  2. subtract(BigDecimal)    BigDecimal对象中的值相减,然后返回这个对象。
  3. multiply(BigDecimal)    BigDecimal对象中的值相乘,然后返回这个对象。
  4. divide(BigDecimal)        BigDecimal对象中的值相除,然后返回这个对象。
  5. toString()                         将BigDecimal对象的数值转换成字符串。
  6. doubleValue()                 将BigDecimal对象中的值以双精度数返回。
  7. floatValue()                     将BigDecimal对象中的值以单精度数返回。
  8. longValue()                     将BigDecimal对象中的值以长整数返回。
  9. intValue()                       将BigDecimal对象中的值以整数返回。


  1. public static void main(String[] args) {  
  2.     NumberFormat currency = NumberFormat.getCurrencyInstance(); //建立货币格式化引用   
  3.     NumberFormat percent = NumberFormat.getPercentInstance();  //建立百分比格式化引用   
  4.     percent.setMaximumFractionDigits(3); //百分比小数点最多3位   
  5.       
  6.     BigDecimal loanAmount = new BigDecimal("15000.48"); //贷款金额  
  7.     BigDecimal interestRate = new BigDecimal("0.008"); //利率     
  8.     BigDecimal interest = loanAmount.multiply(interestRate); //相乘  
  9.    
  10.     System.out.println("贷款金额:\t" + currency.format(loanAmount));   
  11.     System.out.println("利率:\t" + percent.format(interestRate));   
  12.     System.out.println("利息:\t" + currency.format(interest));   
  13. }  

原创粉丝点击