2010-10-04 15 views
20

%s es una cadena en printf, y el% d es un número decimal que pensé ... sin embargo, al poner enJava: Doble cuestión% de formato de printf

writer.printf("%d dollars is the balance of %s\r\n", bal, nm); 

excepción ..an me está diciendo que arrojado %d ! = lang.double. Ideas?

+1

¿Qué es el tipo "bal"? – Amirshk

Respuesta

44

%d es para enteros utilizan %f en cambio, funciona tanto para float y double tipos:

double d = 1.2; 
float f = 1.2f; 
System.out.printf("%f %f",d,f); // prints 1.200000 1.200000 
+0

BTW, solo imprime 6 escamas después del punto decimal, podría imprimir más como esto: '% .8f' (imprime 8 escalas). –

21

Sí, %d significa decimal, pero significa sistema de numeración decimal, no coma decimal.

Además, como complemento de la publicación anterior, también puede controlar la cantidad de decimales que se muestran. Prueba de esto,

System.out.printf("%.2f %.1f",d,f); // prints 1.20 1.2 

Para más consulte el API docs.