Как писать и читать переменные типа "double", используя "MemoryMappedFile.CreateNew" в C #? - PullRequest
0 голосов
/ 02 февраля 2019

Я хочу передать переменную двойного типа процессу exe, предоставленному Unity3D с использованием MemoryMappedFiles.Я успешно читаю данные в процессе Unity, но на следующем уровне моего кода я должен передать эту двойную переменную в Vector3 Unity, который получает тип float.

Я использовал эту строку для преобразования из двойного в число с плавающей точкой:

float omegafloat = Convert.ToSingle(omega);

проблема в том, что омега имеет отрицательное значение около -0,004, но в Unity оно равно +0,004!Интересно, почему это случилось с моими данными?

1 Ответ

0 голосов
/ 02 февраля 2019

Предполагая, что CreateMMF() является вашей собственной функцией

float xIn = -0.0004F;
float xOut = 0;

MemoryMappedFile memoryMappedFile = CreateMMF();

using (MemoryMappedViewAccessor accessor = memoryMappedFile.CreateViewAccessor(0, 8))
{
    accessor.Write(0, xIn);
}

using (MemoryMappedViewAccessor accessor = memoryMappedFile.CreateViewAccessor(0, 8))
{
    accessor.Read(0, out xOut);
}

xOut будет равно -0,004F

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...