Je veux convertir un nombre en 2 décimales (toujours afficher deux décimales) lors de l'exécution. J'ai essayé du code, mais il ne fait que, comme indiqué ci-dessous
20.03034 >> 20.03
20.3 >> 20.3 ( my code only rounds not converts )
cependant, je veux qu'il fasse ceci:
20.03034 >> 20.03
20.3 >> 20.30 (convert it to two decimal places)
Mon code ci-dessous:
angle = a variable
angle_screen = a variable
DecimalFormat df = new DecimalFormat("#.##");
angle = Double.valueOf(df.format(angle));
angle_screen.setText(String.valueOf(angle) + tmp);
Toute aide sur la façon de le faire serait formidable, merci.
essayez cette new DecimalFormat("#.00");
mise à jour:
double angle = 20.3034;
DecimalFormat df = new DecimalFormat("#.00");
String angleFormated = df.format(angle);
System.out.println(angleFormated); //output 20.30
Votre code n'utilisait pas correctement le format décimal
Le 0 dans le modèle signifie un chiffre obligatoire, le # signifie un chiffre facultatif.
mise à jour 2: vérifiez la réponse ci-dessous
Si vous voulez que 0.2677
Soit formaté en 0.27
, Vous devez utiliser new DecimalFormat("0.00");
sinon ce sera .27
DecimalFormat df=new DecimalFormat("0.00");
Utilisez ce code pour obtenir exactement deux décimales. Même si la valeur est 0,0, elle donnera u 0,00 en sortie.
Au lieu de cela, si vous utilisez:
DecimalFormat df=new DecimalFormat("#.00");
Il ne convertira pas 0,2659 en 0,27 . Vous obtiendrez une réponse comme . 27.
Essayez ceci: String.format("%.2f", angle);
Essayer
DecimalFormat df = new DecimalFormat("#,##0.00");