2012-10-02 3 views

Répondre

6

Ne faites pas de division int car cela entraînera toujours un int tronqué. Au lieu de cela, votre division utilise au moins une valeur double.

double num = 4.0/3.0; 

Puis, quand vous voulez afficher en tant que chaîne, formater la sortie de sorte que vous pouvez choisir vos places décimales:

// one way to do it 
// %.3f is for a floating number with 3 digits to the right of the decimal 
// %n is for new line 
System.out.printf(%.3f%n, num); 

Another: 
DecimalFormat decimalFormat = new DecimalFormat("0.000"); 
System.out.println(decimalFormat.format(num)); 
+0

OMG !!!!!!!!!!!!!!!!!!!! merci T_T – Jcorretjer

+1

Eh bien vous avez seulement besoin d'avoir un être un double (comme 4.0/3 ou 4/3.0), mais les deux ne peuvent pas blesser :) +1 –

+1

@Alex: oui, ou '(double) 4/3' serait fonctionne bien aussi. –

0

Vous devez également utiliser String.format (% 1.2f, yourDouble) pour formater vos décimales

+3

Oui, ce code va imprimer les données doubles, mais vérifiez que' int/int = int', donc '4/3' sera '1', vous devriez utiliser' 4.0/3.0' pour obtenir '1.333 ...' –

0

Try this ..

double value= 255.956666; 

BigDecimal bd = new BigDecimal(value).setScale(2, RoundingMode.HALF_UP); 
System.out.println("value="+bd);