J'utilise sur le client C# où je convertis des valeurs doubles en tableau d'octets. J'utilise java sur le serveur et j'utilise writeDouble et readDouble pour convertir des valeurs doubles en tableaux d'octets.CIL et JVM Little endian à big endian en C# et java
Le problème est le double des valeurs de java à la fin ne sont pas les doubles valeurs à commencer à donner à C#
writeDouble en Java Converti double argument à un long en utilisant la méthode doubleToLongBits, puis écrit ce long valeur au flux de sortie sous-jacent en tant que quantité de 8 octets, octet haut en premier.
DoubleToLongBits Renvoie une représentation de la valeur à virgule flottante spécifiée conformément à la disposition des bits en "double format" à virgule flottante IEEE 754.
Le programme sur le serveur est en attente de 64-102-112-0-0-0-0-0 de C# pour le convertir en 1700,0 mais il Sí devenir 0000014415464 de C# après C# converti 1700,0
cette est mon code en C#:
class User
{
double workingStatus;
public void persist()
{
byte[] dataByte;
using (MemoryStream ms = new MemoryStream())
{
using (BinaryWriter bw = new BinaryWriter(ms))
{
bw.Write(workingStatus);
bw.Flush();
bw.Close();
}
dataByte = ms.ToArray();
for (int j = 0; j < dataByte.Length; j++)
{
Console.Write(dataByte[j]);
}
}
public double WorkingStatus
{
get { return workingStatus; }
set { workingStatus = value; }
}
}
class Test
{
static void Main()
{
User user = new User();
user.WorkingStatus = 1700.0;
user.persist();
}
merci pour l'aide.