2012-06-20 42 views
1

全部- 我有一個應用程序,其中用戶輸入數據,如晚餐費用的成本和提示百分比和人數。該應用程序比獲取數字並輸出總賬單成本和每個人必須支付的金額。我幾乎在那裏,但當用戶輸入的數字不能很好地工作時,我得到的輸出爲23.576美元或34.999999999美元。我的問題是,如何讓應用程序圍繞兩位小數位輸出答案(55.349美元降至55.35美元)? 在此先感謝!如何四捨五入到一個數學方程的答案

+0

數學包有四捨五入方法 – arcy

回答

1

您可以使用Math.round像這樣:

double data = 55.349; // Your data value of whatever 

    int decimalPlaces = 2; 
    double roundBase = Math.pow(10, decimalPlaces); 
    data = (double)(Math.round(data * roundBase))/roundBase; 
    System.out.println(data); // Prints "55.35" 

請記住,但是:當涉及到財務應用程序,你不應該使用雙。由於你的看起來是小規模的,所以你應該沒問題,但是,BigDecimal更容易用於這些目的。

如何使用BigDecimal:clicky

+0

謝謝我會嘗試。 – ninge

+0

這不適用於大數字... 55442333.349打印5.544233335E7 –

+0

這是正確的。 '5.544233335E7 = 5.544233335 * 10^7 = 55442333.35'。 – Eric

3
String roundTwoDecimals(double d) { 
     DecimalFormat formatter = new DecimalFormat("#.##"); 
     return formatter.format(d); 
} 
+0

什麼叫這種方法? – ninge

+0

您傳入您想要的數字並返回一個舍入數字的字符串。 –