2011-08-25 19 views

risposta

69

Utilizzare questo:

printf ("%.2f", 3.14159); 
+8

Va notato che questo in realtà arrotonda il numero, non solo lo interrompe. – jimpic

1

Si può provare printf ("%. 2f", [double]);

12

si può usare qualcosa di simile:

printf("%.2f", number); 

Se è necessario utilizzare la stringa per qualcosa di diverso di stampare, u se la classe NumberFormat:

NumberFormat formatter = new DecimalFormatter("#.##"); 
String s = formatter.format(3.14159265); // Creates a string containing "3.14" 
+3

Oppure 'String s = String.format ("%. 2f ", numero) '. – brimborium

3

come descritto nella Formatter di classe, è necessario dichiarare la precisione. %.2f nel tuo caso.

2

Utilizzare questa

printf ("%.2f", 3.14159); 
0

suggerisco di imparare con printf perché per molti casi questo sarà sufficiente per le vostre esigenze e non sarà necessario creare altri oggetti.

double d = 3.14159;  
printf ("%.2f", d); 

Ma se avete bisogno di arrotondamento si prega di fare riferimento a questo post

https://stackoverflow.com/a/153785/2815227

1
System.out.printf("%.2f", number); 

MA, questo sarà arrotondare il numero al punto decimale che hai citato. (Come in il tuo caso otterrai 3,14 poiché l'arrotondamento da 3,14159 a 2 punti decimali sarà 3,14)

Poiché la funzione printf sarà arrotondare i numeri le risposte per alcuni altri numeri possono apparire come questo,

System.out.printf("%.2f", 3.14136); -> 3.14 
System.out.printf("%.2f", 3.14536); -> 3.15 
System.out.printf("%.2f", 3.14836); -> 3.15 

Se avete solo bisogno di cutoff i numeri decimali e limitarla a un k numeri decimali senza arrotondamenti,

diciamo k = 2.

System.out.printf("%.2f", 3.14136 - 0.005); -> 3.14 
System.out.printf("%.2f", 3.14536 - 0.005); -> 3.14 
System.out.printf("%.2f", 3.14836 - 0.005); -> 3.14 
Problemi correlati