Je suis en train de convertir le double scientifique en double décimal en Java. J'envoie une valeur du serveur (codé sur C++) qui fonctionne sur la machine X86 (little endian) et j'utilise les méthodes htonl, ntohl pour la conversion avant d'envoyer les données au client (codé sur java). Mais maintenant, je dois envoyer cette valeur sans conversion comme LE à BE. La conversion est effectuée sur le côté client (Java). L'autre type peut être converti correctement mais pour le double, ce n'est pas présent. Lorsque le client reçoit un type double, cette valeur ne peut pas être lue correctement. Voici mon code java pour la double conversion.double notation scientifique à la notation décimale en Java
protected int readInt(InputStream stream) throws IOException {
int i0 = read(stream);
int i1 = read(stream);
int i2 = read(stream);
int i3 = read(stream);
int i=(i0 << 24) + (i1 << 16) + (i2 << 8) + (i3 << 0);
return i;
}
protected double readDouble(InputStream stream) throws IOException {
int i0 = readInt(stream);
int i1 = readInt(stream);
return Double.longBitsToDouble(((long)i0 << 32) + (i1 & 0xffffffffL));
}
Après toutes ces étapes, je me suis 9.534475227E-315 si j'ai envoyé 0,3 du serveur.
Merci et salutations.
Qu'avez-vous trouvé? Qu'avez-vous essayé? S'il vous plaît donnez un exemple pour ce que vous aimez faire. – tangens
J'ai une valeur comme 9.534475227E-315 et je veux convertir cela en 0.3. Pourquoi 0,3? parce que j'ai envoyé 0.3 du serveur au client et quand j'ai lu cette valeur du client, j'ai obtenu 9.534475227E-315 – Aykut
Vous devez fournir plus d'informations quant à la façon dont vous essayez de convertir – Mark