2010-01-06 14 views

Respuesta

80

Como debe haber calculado, no es necesario especificar la bandera l. De acuerdo con the docs, un entero decimal se especifica por d al igual que en C++. Entonces la respuesta es solo %d.

+0

% d no sería suficiente si el valor que intenta imprimir es largo. En ese caso, debes analizarlo. – Milli

+3

@Milli: Si bien no estoy seguro acerca de la primera oración (no creo que firmar sea una consideración), ¡simplemente confirmé experimentalmente que% d formateará largos correctamente! –

+0

¡Tienes razón! Mi mal ... También tuve String en la misma declaración con long ... El error fue causado por el% d% d mientras que debería haber sido% d% s. Gracias Andrzej! – Milli

37

Utilice %d para decimales (largo, int). Funciona bien Por ejemplo:

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

... imprimirá muy bien. Lea en java.util.Formatter para más detalles. %d tomará un long, no hay problema.

+1

¡FUNCIONA PERFECTAMENTE! –