Java-Big Decimal類は数字の損失問題を解決します。

1457 ワード

import java.math.BigDecimal;

/*
 *   :  float        
 * 
 *         ,float   double       ,    .  ,        ,     ,Java   BigDecima
 * 
 * BigDecimal   :    ,            ,          
 * 
 */
public class BigDecimalDemo {

    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal("0.09");
        BigDecimal bd2 = new BigDecimal("0.01");
        System.out.println("add:\t"+bd1.add(bd2));
        System.out.println("-------------------");
        
        BigDecimal bd3 = new BigDecimal("1.0");
        BigDecimal bd4 = new BigDecimal("0.32");
        System.out.println("subtract:\t"+bd3.subtract(bd4));
        System.out.println("-------------------");
        
        BigDecimal bd5 = new BigDecimal("1.015");
        BigDecimal db6 = new BigDecimal("100");
        System.out.println("multiply:\t"+bd5.multiply(db6));
        System.out.println("-------------------");
        
        BigDecimal bd7 = new BigDecimal("1.301");
        BigDecimal bd8 = new BigDecimal("100");
        System.out.println("divide:\t"+bd7.divide(bd8));
        System.out.println("-------------------");
        //  1:     
        //  2:      (        )
        //  3:         
        System.out.println("divide:\t"+bd7.divide(bd8, 3, BigDecimal.ROUND_HALF_UP));
        
    }
}