2015-05-06 18 views
5

PerchéFormato numero in virgola mobile con zeri

System.out.format("%03.3f", 1.23456789); 

stampa 1.235 invece di 001.235?

In che modo la stringa format sembra avere 001.235 come output della seguente riga di codice?

System.out.format(format, 1.23456789); 
+1

@SashaSalauyou Invia questo come risposta. Hai postato praticamente quello che stavo per presentare. –

risposta

7

numero dopo %0 qui definisce larghezza completo, compreso il punto decimale, quindi è necessario cambiare a 7:

System.out.format("%07.3f", 1.23456789); 
+0

Suggerirei di formattare prima la stringa e quindi di emetterla. 'String.format ("% 07.3f ", 1.23456789);' –

+0

@DanielTung Nel caso in cui non avessi bisogno della stringa per qualcos'altro, dovrei prima formattare e poi emetterlo? –

1
DecimalFormat formatter = (DecimalFormat)NumberFormat.getNumberInstance(Locale.US); 
formatter.applyPattern("000.###"); 
System.out.format(formatter.format(1.23456789)); 

Risultato:

001,234

Demo

Problemi correlati