J'ai des problèmes pour formater les décimales d'un double. Si j'ai une valeur double, par exemple 4.0, comment formater les décimales pour qu'elles soient 4,00 à la place?
java
formatting
double
decimal
Christoffer
la source
la source
String.format()
oujava.text.Format
.Réponses:
L'un des moyens serait d'utiliser NumberFormat .
Production:
4,00
la source
Avec Java 8, vous pouvez utiliser la
format
méthode ..: -f
est utilisé pour lafloating
valeur en points.2
après la décimale, le nombre de décimales après.
Pour la plupart des versions de Java, vous pouvez utiliser
DecimalFormat
: -la source
Utilisez String.format :
String.format("%.2f", 4.52135);
Selon la documentation:
la source
En utilisant String.format, vous pouvez faire ceci:
Remarquez la virgule qui rend cela différent de la réponse de @ Vincent
Production:
$52,000.00
Une bonne ressource pour la mise en forme est officielle page java sur le sujet
la source
Vous pouvez toujours utiliser la méthode statique
printf from System.out
- vous implémentez ensuite le formateur correspondant; cela économise de l'espace de tas dans lequel d'autres exemples vous obligent à faire.Ex:
Économise de l'espace sur le tas, ce qui est un gros bonus, néanmoins je suis d'avis que cet exemple est beaucoup plus gérable que toute autre réponse, d'autant plus que la plupart des programmeurs connaissent la fonction printf à partir de C (Java change légèrement la fonction / méthode).
la source
out
est lePrintStream
.printf
est une méthode statique dePrintStream
. Voir ici ;) Mais +1 néanmoins.la source
la source
Une autre méthode consiste à utiliser la
setMinimumFractionDigits
méthode de laNumberFormat
classe.Ici, vous spécifiez essentiellement le nombre de nombres que vous souhaitez afficher après la virgule décimale.
Donc, une entrée de
4.0
produirait4.00
, en supposant que votre montant spécifié était de 2.Mais, si votre
Double
entrée contient plus que le montant spécifié, il prendra le montant minimum spécifié, puis ajoutera un chiffre supplémentaire arrondi vers le haut / basPar exemple,
4.15465454
avec une quantité minimale de 2 spécifiée produira4.155
Essayez-le en ligne
la source
Il existe de nombreuses façons de procéder. Ceux-ci sont donnés ci-dessous:
Supposons que votre numéro d'origine soit indiqué ci-dessous:
Utilisation de NumberFormat:
Utilisation de String.format:
Utilisation de DecimalFormat et du motif:
Utilisation de DecimalFormat et du motif
Dans tous les cas, la sortie sera: 2354548.23
Remarque :
Lors de l'arrondi, vous pouvez ajouter
RoundingMode
votre formateur. Voici quelques modes d'arrondi donnés ci-dessous:Voici les importations :
la source
Vous pouvez utiliser l'une des méthodes ci-dessous
Si vous utilisez
java.text.DecimalFormat
OU
Si vous souhaitez le convertir en format de chaîne simple
Tout le code ci-dessus imprimera 4,00
la source
Fonctionne à 100%.
la source
Première importation
NumberFormat
. Puis ajoutez ceci:Cela vous donnera deux décimales et mettra un signe dollar s'il s'agit de monnaie.
la source
Vous pouvez le faire comme suit:
la source
##
place de00
Je sais que c'est un vieux sujet, mais si vous aimez vraiment avoir le point au lieu de la virgule, enregistrez simplement votre résultat sous X, 00 dans une chaîne, puis modifiez-le simplement pour une période pour obtenir le X.00
Le moyen le plus simple consiste simplement à utiliser replace.
La sortie sera le X.00 que vous vouliez. Aussi pour faciliter les choses, vous pouvez tout faire en un seul et l'enregistrer dans une double variable:
Je sais que cette réponse n'est pas utile pour le moment, mais peut-être que quelqu'un qui vérifie ce forum cherchera une solution rapide comme celle-ci.
la source