Сериализирую объект при помощи JsonUtility. Вот что выходит:
Собственно, вот и вся проблема :) Есть идеи?
Сериализирую объект при помощи JsonUtility. Вот что выходит:
Собственно, вот и вся проблема :) Есть идеи?
JSON сохраняет правильно.
Дело в том, что значение 0.2 не представимо точно ни в типе float, ни в типе double (поскольку не является двоичной дробью). JSON переводит значения в тип double, и получаются именно такие значения.
Проверка: https://ideone.com/TUXPL7
Заставить JSON сохранять во float невозможно, т. к. в JSON есть только double.
Если хотите «красивый» вывод, пусть в вашей программе будут значения типа double: 0.2, а не 0.2f. 0.2f при приведении к double не даёт 0.2, ничего поделать нельзя. Или форматируйте самостоятельно через string.Format или f.ToString("0.##").
float или double значение 0.2, вы уже допускаете ошибку точности. Число 0.2 не представимо в виде double.
– VladD
Dec 30 '17 at 15:05
double d = 0.2; Console.WriteLine(d * 64 - 12);.
– VladD
Dec 30 '17 at 15:08
double вместо float, если красивые значения вам реально важны.
– VladD
Dec 30 '17 at 15:12