2014-09-11 68 views
1

我在收銀機類型的應用程序工作,我分離美元和美分遇到問題。我可以通過自己而不是美分獲得美元。這是我目前所在的地方。Java更改舍入

變化126.7328 美元126 美分,7328

我想美分,僅僅是73,而不是7328.

String changeString = Double.toString(change); 
    String[] parts = changeString.split("\\."); 
    String part2 = parts[1]; 
    double cents5 = Double.parseDouble(part2); 
    int cents = (int)cents5 

任何幫助將非常感激。

+0

原因:

NumberFormat myCurrencyFormat = NumberFormat.currencyInstance(); String moneyString = myCurrencyFormat.format(change); 

或者,如果你不想看到這些錢的符號,使用一個DecimalFormat 「\\」。而不僅僅是「。」? – 2014-09-11 01:10:41

+1

您不應該使用浮點值來獲取金錢。對美分使用整數或長整型值,並對模數100進行更改。看到這個問題:http://stackoverflow.com/questions/3730019/why-not-use-double-or-float-to-represent-currency – 2014-09-11 01:12:04

+1

或者使用BigDecimal(儘管當嘗試比較時要注意下降到瘋狂,並且等於) – stringy05 2014-09-11 01:14:05

回答

0

格式使用的NumberFormat對象數據:

DecimalFormat decimalFormat = new DecimalFormat("0.00"); 
String moneyString = decimalFormat.format(change); 
+0

這顯然已經太久了,但我只是希望它是一個2位數字,如73 – user3808597 2014-09-11 01:15:59

+0

@ user3808597然後做別人已經建議的內容...... tackoverflow.com/questions/3730019/why - 未使用的雙 - 或float到代表貨幣 – 2014-09-11 01:18:36