2016-09-14 25 views
0

如何四捨五入取得最大n位數(包括小數點前後的位數)。如何四捨五入來獲得最多n位數

格式:數字(10,8)[最多10位數字,小數點後最多8位數字。

實施例:

2233.64344206d應四捨五入到2233.643442d。

2233.64344206d在小數點前有4位數字,後面是8位數字,共有12位數字,最多應該有10位數字。 因此2233.643442d是正確的舍入結果,因爲它有小數點前4位數字,後面6位數字,總共10位數字。

java.text.DecimalFormat運行到小數點後的整數。 例如,如果我想四捨五入小數點後最多4位數字,那麼我可以使用DecimalFormat(「#0。####」)

+0

你應該考慮將你的雙爲BigDecimal和使用setScale( ) 方法。 – Abhijeet

+0

您是否需要四捨五入的值作進一步處理,還是隻打印該值? –

+0

@Michael:四捨五入值將通過xml標籤發送到不同的系統。 – Suvasis

回答

0

您可以使用BigDecimal,查看您需要多少位數小數點,看看你想要的總位數,規模設置爲它們之間的區別:

public static void main(String[] args) { 
    double p = 2233.64344206d; 
    BigDecimal d = new BigDecimal(p); 
    int n = 10; 
    int integralDigits = d.toBigInteger().toString().length(); 
    d = d.setScale(n - integralDigits, RoundingMode.HALF_EVEN); 
    System.out.println(d); 
} 

輸出:2233.643442

+0

謝謝。有用。 – Suvasis