Garniture de Plus de deux Zéros à droite dans BigDecimal

Ce serait une bonne façon de couper plus de deux zéros pour un BigDecimal

Donc 1.2200 serait d'imprimer 1.22 et 1,0000 serait d'imprimer 1.00

Modifier ainsi Que le retour 1.222200 comme
1.2222 et 1.220000001 comme 1.220000001 etc. Donc, ignorant les deux premiers zéros je veux couper les entrants 0 et de ne pas découper les valeurs non nulles

Une façon peut être de se multiplier, puis appliquer le construit en garniture de zéros à droite et puis à diviser par 100. Il pourrait être difficile dans le cas du coin mais les valeurs de mon problème de monnaie de base et ne jamais dépasser les limites fixées par Java (ou autre chose, elle signifie que mon logiciel est de traiter avec les offres qui sont dans gazzilions de dollars)

Le laid solution est comme épouse

System.out.println(((new BigDecimal("1.230223000")
                                 .multiply(new BigDecimal("100.0"))
                                 .stripTrailingZeros()).divide(new BigDecimal("100.0"))));
  • notez que vos nouvelles exigences en conflit avec vos originaux: comment peut - 1.230223000 être transformé en 1.230223, mais 1.0000 doit imprimer 1.00?
  • aucune d'elles ne Joachim. lire de nouveau. Je veux ignorer les deux premiers zéros après la virgule pour le découpage. Et l'entrée sera toujours de atleast x.xx type
  • yep, j'ai réalisé qu'après que j'ai posté mon commentaire. Est-ce que mon (mise à jour) réponse de l'aide?
InformationsquelleAutor geoaxis | 2011-05-30