2014-09-11 2 views
1

Im travaillant sur une application de type caisse enregistreuse, je rencontre des problèmes lors de la séparation des dollars et des cents. Je peux avoir des dollars en soi mais pas des centimes. C'est où je suis actuellement.Java Modifier arrondi

changement 126.7328 dollars 126 cents 7328

Je veux cents à être juste 73 au lieu de 7328.

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

Toute aide serait grandement appréciée.

+0

pourquoi "\\." et pas seulement "."? –

+1

Vous ne devriez pas utiliser les valeurs à virgule flottante pour de l'argent. Utilisez un entier ou une valeur longue pour cents, et faites modulo 100 pour le changement. Voir cette question: http://stackoverflow.com/questions/3730019/why-not-use-double-or-float-to-represent-currency –

+1

Ou bien utilisez BigDecimal (bien que méfiez-vous de la descente dans la folie lorsque vous tentez des comparaisons et égales) – stringy05

Répondre

0

Format vos données à l'aide d'un objet NumberFormat:

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

Ou si vous ne voulez pas voir le symbole de l'argent, utilisez un DecimalFormat:

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

mais je veux juste qu'il soit un nombre à 2 chiffres comme 73 – user3808597

+0

@ user3808597 Ensuite, faites ce que quelqu'un a déjà suggéré ... tackoverflow.com/questions/3730019/why -non-utiliser-double-ou-float-to-represent-currency –