Почему все двойники из Unity3d хранятся в «базе данных Firebase» с округлением до 4 десятичных знаков? - PullRequest
2 голосов
/ 18 июня 2019

Когда я пытаюсь сохранить двойной из Unity3d Editor в базе данных Firebase, он всегда округляется до 4 десятичных знаков.Мне нужно сохранить его как минимум с 8 знаками после запятой.У меня нет проблем с двойниками, когда я сохраняю их в firebase из JS или GO, но когда я делаю это из Unity, они всегда округляются в БД.

Я пытаюсь сохранить double как часть объекта с помощью SetRawJsonValueAsync , в рамках эксперимента я пытаюсь сохранить отдельный дубль с помощью SetValueAsync .Это не имеет значения.

public class StructureBinding
{
    public string Id;
    //...
    double X;
    double Y;
}

public void Save()
{
    var sb = new StructureBinding
    {
        Id = Guid.NewGuid().ToString(),
        X = 55.7389229831519,
        Y = 37.633679
    }
    //save as object
    FirebaseDatabase.DefaultInstance
                  .GetReference(sb.Id)
                  .SetRawJsonValueAsync(sb);
    //save as double
    double testDouble = 55.7389229831519;
    FirebaseDatabase.DefaultInstance
                  .GetReference("testDouble")
                  .SetValueAsync(testDouble);
}

Я ожидаю, что после чтения этих значений из БД я получу X = 55.7389229831519, но всегда X = 55.7389.Кроме того, я хочу видеть правильные значения в консоли Firebase, но в консоли я вижу значения с 4 десятичными цифрами.С другой стороны, значения, созданные из JS, отображаются с необходимым количеством цифр.

ОБНОВЛЕНИЕ: проблема существует только в редакторе.На устройстве (iOs) проблема не повторяется.

...