Foro de elhacker.net

Programación => Java => Mensaje iniciado por: KuraraGNU en 19 Noviembre 2010, 10:34 am



Título: printf() Problemas con el formato
Publicado por: KuraraGNU en 19 Noviembre 2010, 10:34 am
¡Buenas! He intentado usar esta clase, y me daba error al convertir int y double, al principio pensé que era que me faltaba la clase en el eclipse pero no, porque dejé una parte del código escrito así, sin querer:
Código
  1.    public void visualizar()
  2.    {
  3.     super.visualizar();
  4.     System.out.printf("\nPrecio: %f",precio);
  5.     System.out.printf("\nHipoteca: %b",hipoteca);
  6.     System.out.printf("\nCantidad: %d",cantidad);
  7.    }
Y me mostró el precio y la hipoteca.

Entonces es obvio que es un problema de que no convierto bien, estuve leyendo la documentación del Formatter y no encontré como pasar un int, los int que salen son el base 8 y en base 16, además, me fije que el f no devuelve un float, sino un decimal, pero no hay forma de convertir a float, así que supongo que si se ha tragado el f estará bien. Si consigo averiguar cómo castear cada tipo de dato haré una mini guía para el foro :/


Título: Re: printf() Problemas con el formato
Publicado por: Debci en 20 Noviembre 2010, 00:11 am
Existen dos tipos de casts:

-Explícitos (en la misma expresión):
Código
  1. int numero1 = 1;
  2. long numero2 = (long)numero1;

-Casts de método, es decir, una cambio a través de una función proporcionada por la clase poseedora:

Código
  1. //Con esto convertimos una cadena a un entero
  2. Integer.parseInt("61762");

Saludos


Título: Re: printf() Problemas con el formato
Publicado por: Shell Root en 20 Noviembre 2010, 00:19 am
mmm no era,
Código
  1. String.valueOf(5);


Título: Re: printf() Problemas con el formato
Publicado por: Debci en 20 Noviembre 2010, 12:02 pm
Cierto, una errata de las horas nocturnas, corregido :D

Saludos


Título: Re: printf() Problemas con el formato
Publicado por: KuraraGNU en 20 Noviembre 2010, 16:14 pm
Ya se que existen dos tipos de cast, pero eso no resolvió mi duda :/ Se convertir datos, hasta ahí llego, pero no se qué iniciales se utilizan en la clase formatter que es para en un String agregar datos de otro tipo. Se supone que se utiliza esta expresión:
%[argument_index$][flags][width][.precision]conversion

Y mirando la documentación, no logré averiguar qué se pone para el tipo int, por ejemplo. Está aqui:

http://download.oracle.com/javase/6/docs/api/

A ver si así queda más clara mi duda.


Título: Re: printf() Problemas con el formato
Publicado por: xassiz~ en 20 Noviembre 2010, 18:03 pm
%i


Título: Re: printf() Problemas con el formato
Publicado por: 1mpuls0 en 20 Noviembre 2010, 18:09 pm
Hola que tal.

Intentas hacer

Código
  1. System.out.printf("numero es %01d\n", 5 );

 :huh:

en tu caso sería.

Código
  1. System.out.printf("\nCantidad: %01d\n",cantidad);

Citar
%i
  :huh: :rolleyes:

Un saludo.


Título: Re: printf() Problemas con el formato
Publicado por: KuraraGNU en 2 Diciembre 2010, 13:38 pm
@Darhius ¡Perdona por tardar tanto en contestar! :D Ya vi lo que me decías y creo que ya resolví mi duda de tipo de conversión de datos, gracias Darhius, lo que ocurre es que yo intentaba usar %i como hago en c# pero no existe "i" en java, el tipo de dato int es "d" como pusiste tú, voy a hacerme una lista con los tipos de valores y su conversión en la clase Formatter y si algún tipo de dato no lo encuentro te lo pregunto ¿si? :D


Título: Re: printf() Problemas con el formato
Publicado por: 1mpuls0 en 3 Diciembre 2010, 06:40 am
Qué bueno que te sirvió, pensé que no era lo que buscabas, ya que no habias respondido nada.

Y claro para eso estamos para ayudar.

Saludos.