Witam.
Przerabiam stare procedury z Delphi na C# i natknąłem się na następujący problem.
Podczas przetwarzania ramki zwrotnej z urządzenia muszę przetworzyć 4 bajty, których zawartośc jest typu single (Delphi).
O ile w samym Delphi konwersja rzutowania działa poprawnie to odczytanie tych samych 4 bajtów w C# kończy się stratą dokładności (dla dużych liczb).
Np. z tablicy 4 bajtów Delphi zwróci liczbę "23 324 768 256.0" zaś ta sama tablica w C# da efekt w postaci "23 324 760 000.0".
Przetwarzanie w Dephi:
single( addr(STR[1])^ );
Przetwarzanie w C#:
memoryStream = new System.IO.MemoryStream(bytesFloat);
binaryReader = new System.IO.BinaryReader(memoryStream);
return binaryReader.ReadSingle();
Chciałbym rozwiązać ten problem tworząc z tej tablicy bajtów liczbę double... ona bez problemu przyjmuje tą dokładność... niestety nie wiem jak przetworzyć te 4 bajty aby uzyskać dokładność double.
Sebastian