Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/09/2009, 15:12
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 17 años
Puntos: 260
Sonrisa Respuesta: de float a un array de bytes en 8 bytes.

Hola,

Código java:
Ver original
  1. public static void main(String[] args) {
  2.         /* 6061970311763627 */
  3.         /* 158954731256AB   */
  4.         double d = 6061970311763627d;
  5.         BigInteger bd = new BigInteger(String.format("%16.0f", d));
  6.         char s[] = String.format("%16x", bd).toCharArray();
  7.         System.out.println(s);
  8.     }

El tipo de datos 'float' tiene una precisión de 6 digitos, por lo tanto se pierde parte del número desde el momento en que se almacena en un 'float'. El tipo de datos 'double' la precisión es de 15 digitos, cualquier número más grande pierde precisión (sino usa otro tipo de datos).

Al "convertir" de double a BigInteger se mantiene la precisión de los primeros 15 digitos.

Saludos,