Vol4ica писал(а):А ты юнити обновлял до 5.5.0f3?
У меня после обновления флоат тоже странно себя ведет, только вместо лишнего округления происходит лишнее разбиение. Я 10 раз прибавляю к числу 5 число 0.1, и вместо того чтобы дать на выходе 6 юнити каждый раз прибавлял не 0.1 а 0.0999995, давая ответ 5.999995...
У float точность 7 знаков. Все остальные цифры будут взяты наобум, в зависимости от процессора.
Пример:
число 12345678.9 превратится в 1234567.случаные_числа
число 1.23456789 превратится в 1.234567случаные_числа
Почему так сделано? Потому что хранение одного числа с бесконечным числом знаков после запятой будет занимать бесконечно памяти. Округление тут не работает т.к. у кого-то будет 1234567.9, а у другого 1234567.2 ( 9 и 2 - случайные числа, которые были созданы разными моделями проца). И округление приведёт к тому, что один сетевой игрок говорит что у него 1234568 патронов, а другой говорит что нифига, у тебя 1234567 патронов. Патроны заканчиваются и человек убивает тебя последним несуществующим патроном, а у тебя на экране он не убивает тебя и делает перезарядку.