printf() Problemas con el formato

Iniciado por KuraraGNU, 19 Noviembre 2010, 10:34 AM

0 Miembros y 1 Visitante están viendo este tema.

KuraraGNU

¡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 (java) [Seleccionar]
    public void visualizar()
    {
    super.visualizar();
    System.out.printf("\nPrecio: %f",precio);
    System.out.printf("\nHipoteca: %b",hipoteca);
    System.out.printf("\nCantidad: %d",cantidad);
    }

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 :/

Debci

#1
Existen dos tipos de casts:

-Explícitos (en la misma expresión):
Código (java) [Seleccionar]
int numero1 = 1;
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 (java) [Seleccionar]
//Con esto convertimos una cadena a un entero
Integer.parseInt("61762");


Saludos

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Debci

Cierto, una errata de las horas nocturnas, corregido :D

Saludos

KuraraGNU

#4
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.


1mpuls0

#6
Hola que tal.

Intentas hacer

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

:huh:

en tu caso sería.

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

Citar%i
:huh: :rolleyes:

Un saludo.
abc

KuraraGNU

@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

1mpuls0

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.
abc