Java Effective 48-正確な答えが必要な場合はfloatとdoubleは使用しないでください

582 ワード

floatとdoubleタイプの主な設計目的は科学計算とエンジニアリング計算である.これらは、広域数値範囲でより正確な高速近似計算を提供するために丹念に設計されたバイナリ浮動小数点演算を実行する.しかし、それらは完全に正確な結果を提供していないので、正確な結果を要求する場合に使用されるべきではない.floatとdoubleタイプは通貨計算に特に不適切である.

static void floatTest(){
        System.out.println(1.03-0.42);
        System.out.println(1-0.1*9);
        
        //Use BigDecimal, BigInteger, or long
        BigInteger bi;
        BigDecimal bd;
        
        // smaller than Int max, use it. or long if smaller than 10(18), else use BigDecimal
    }