2010-01-06 17 views

risposta

80

Come probabilmente si è capito, non è necessario specificare il flag l. Secondo the docs, un intero decimale è specificato da d proprio come in C++. Quindi la risposta è solo %d.

+0

% d non sarebbe sufficiente se il valore che si sta tentando di stampare è lungo. In tal caso, devi analizzarlo. – Milli

+3

@Milli: Anche se non sono sicuro della prima frase (non credo che la firma sia una considerazione), ho appena confermato sperimentalmente che% d formatterà correttamente i long! –

+0

Sei GIUSTO! Il mio male .. Ho avuto anche String nella stessa dichiarazione con lungo .. L'errore è stato causato dal% d% d mentre avrebbe dovuto essere% d% s. Grazie Andrzej! – Milli

37

Utilizzare %d per decimali (long, int). Funziona OK. Es .:

System.err.println(String.format("%d", 193874120937489387L)); 

... verrà stampato correttamente. Leggi su java.util.Formatter per maggiori dettagli. %d prenderà un long, nessun problema.

+1

FUNZIONA PERFETTA !! –