Foro de elhacker.net

Programación => Java => Mensaje iniciado por: ComputerScienceSolutions en 19 Junio 2014, 05:43 am



Título: Ayuda con Printf - Por favor
Publicado por: ComputerScienceSolutions en 19 Junio 2014, 05:43 am
Hola amigos , tengo un pequeño problema que me esta resultando un dolor de cabeza
Tengo que imprimir mediante el comando System.out.printf  los siguientes resultados:

123098
00123098
+123098
123,098
+123,098
3.141593
3.142
3.142
3.142
3,1416

Pero solo llego a imprimir esto:

123098
00123098
+123098
123.098
+123.098
3,141593
3,142
3,142
3,142
3,1416

La diferencia esta en las comas y puntos, no como hacerle para que me aparezcan comas en donde aparezcan puntos y viceversa.

Tengo esto . mi codigo:

long numero=123098;
double pi=Math.PI;

System.out.printf("%d %n", numero);
System.out.printf("00%d %n",numero);
System.out.printf("%+d %n",numero);
System.out.printf("%,3d %n",numero);
System.out.printf("%+,3d %n",numero);
System.out.printf("%f %n",pi);
System.out.printf("%.3f %n",pi);
System.out.printf("%.3f %n",pi);
System.out.printf("%.3f %n",pi);
System.out.printf("%.4f %n",pi);




Título: Re: Ayuda con Printf - Por favor
Publicado por: gordo23 en 19 Junio 2014, 13:55 pm
Buenas, tenés dos formas de usar printf(), la primera es como la estás usando ahora mismo:

printf(String format, Object... args);

Esta utiliza la localización por default que tiene tu sistema operativo, yo por ejemplo tengo configurado mi sistema operativo con localización en Argentina, entonces los miles me los divide con un punto y los decimales con una coma. El otro método es:

printf(Locale loc, String format, Object... args);

Este agrega un argumento al principio para cambiar la configuración de localización de la salida. Como vos querés que salga podés utilizar localización estadounidense:

System.out.printf(Locale.US, "%,3d %n", numero);


Saludos y suerte.-