2011-06-27 33 views
1

四捨五入選擇我正在寫有圓非常大和精確的數的程序(可能還有更多顯著數字甚至比雙能處理),並且正在使用BigDecimals的。高級與BigDecimal的

有沒有一種方法,使BigDecimal的一輪基礎上的地方,而不是顯著數字?

也就是說,我需要0.5四捨五入到1和0.4舍入到0,但由於它們是相同數量的顯著數字,BigDecimal的拒絕圓他們的任何。

回答

5

懷疑你想setScale

import java.math.*; 

public class Test 
{ 
    public static void main(String[] args) 
    { 
     showRounded(new BigDecimal("0.4")); 
     showRounded(new BigDecimal("0.5")); 
    } 

    static void showRounded(BigDecimal input) 
    { 
     BigDecimal output = input.setScale(0, BigDecimal.ROUND_HALF_UP); 
     System.out.println(input + " => " + output); 
    } 
}