1. 程式人生 > >Java 對Double 型別四捨五入

Java 對Double 型別四捨五入

下面簡單給出三種:個人喜歡第一種,比較靈活,保留多少位很方便設定

import java.math.RoundingMode;
import java.text.NumberFormat;

public class TestMain {

    public static void main(String [] args){

                Double d = 56.32158796549989D;
                d = handleDecimal(d);
                System.out.println(d);
    }

    //處理小數位數
    private static Double handleDecimal(Double d ){

        int decimal = 3;
        NumberFormat nf = NumberFormat.getNumberInstance();
        // 保留兩位小數
        nf.setMaximumFractionDigits(decimal);
        // 四捨五入
        nf.setRoundingMode(RoundingMode.HALF_UP);
        String result = nf.format(d);
        return Double.valueOf(result);
    }

    //處理小數位數
    private static Double handleDecimal1(Double d ){
        return (double)Math.round(d*1000)/1000;
    }

    //處理小數位數
    private static Double handleDecimal2(Double d ){
        String str = String.format("%.3f", d);
        return Double.valueOf(str);
    }

}