09/08/2009, 03:14
|
| | Fecha de Ingreso: julio-2009
Mensajes: 64
Antigüedad: 15 años, 5 meses Puntos: 0 | |
Respuesta: Decimal con Coma Flotante a Binario Ayuda!!! Si lo que quieres es convertir un double a byte[] -- es "imposible". Me explico, el número de dígitos después de la coma (mantisa creo que se llama) puede ser infinito.
La solución podría ser redondear al último dígito significativo y convertir al entero.
Pongamos como ejemplo que lo que quieres convertir es 12,457897986876876786876... pero que solamente te interesan dos dígitos después de la coma.
double d = 12,457897986876876786876;
double dd = d * 100.0; // multiplicamos y obtenemos 1245,7897986876876786876
long s = Math.round(dd); // s = 1246
ahora tu objetivo es convertir este número a binario, esto ya no me acuerdo como se hace, así que saque un ejemplo bueno a mi parecer del Internete:
public static byte[] longToByteArray(long l) {
byte[] bArray = new byte[8];
ByteBuffer bBuffer = ByteBuffer.wrap(bArray);
LongBuffer lBuffer = bBuffer.asLongBuffer();
lBuffer.put(0, l);
return bArray;
}
Ya tienes un array de bytes que puedes enviar donde quieras.
En el otro extremo tienen que saber las consideraciones que has tenido en cuenta, como que tendrán que dividir por 100 (en este caso) para obtener el dato correcto. |