1 или 1f ?

Раздел, посвящённый самому важному - скорости.

Re: 1 или 1f ?

Сообщение waruiyume 10 авг 2012, 17:34

Изображение
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: 1 или 1f ?

Сообщение [bm] 24 сен 2012, 09:22

А есть ли разница между сравнениями и сложениями float и int значений?

if (floatValue == 25) и if (floatValue == 25f)

floatValue -= 25 и floatValue -= 25f

и тп.
Mafia Rush: universal iOS game _https://goo.gl/CKq4D Android _https://goo.gl/slFLXx
Shooter Ball: Android _https://goo.gl/21QyPw
skype: bmindfield
Аватара пользователя
[bm]
UNIверсал
 
Сообщения: 426
Зарегистрирован: 11 май 2010, 22:33
Откуда: Россия, Ижевск

Re: 1 или 1f ?

Сообщение Woolf 24 сен 2012, 14:07

[bm] писал(а):А есть ли разница между сравнениями и сложениями float и int значений?

if (floatValue == 25) и if (floatValue == 25f)

floatValue -= 25 и floatValue -= 25f

и тп.


конечно есть.
if (floatValue == 25f) может не сработать, потому, что floatValue может быть, к примеру, 24.999999998 из-за ошибок в точности. Посему, floatValue лучше использовать только на больше/меньше или round'ить их в int или double
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: 1 или 1f ?

Сообщение [bm] 24 сен 2012, 15:03

Это все понятно. Интересуюсь в плане производительности.Будет ли переводить int в float при if (24.9999f == 25), или все же лучше писать if (24.9999f == 25f) ?
Mafia Rush: universal iOS game _https://goo.gl/CKq4D Android _https://goo.gl/slFLXx
Shooter Ball: Android _https://goo.gl/21QyPw
skype: bmindfield
Аватара пользователя
[bm]
UNIверсал
 
Сообщения: 426
Зарегистрирован: 11 май 2010, 22:33
Откуда: Россия, Ижевск

Re: 1 или 1f ?

Сообщение gnoblin 25 сен 2012, 00:27

флоаты лучше сравнивать через Mathf.Approximately() :)
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: 1 или 1f ?

Сообщение seaman 25 сен 2012, 07:11

Синтаксис:
Используется csharp
        public static bool Approximately(float a, float b)
        {
            return (Abs((float) (b - a)) < Max((float) (1E-06f * Max(Abs(a), Abs(b))), (float) 1.121039E-44f));
        }

Имхо - жуть.
if(Math.Abs(a-b) < 1E-06f) достаточно.
Такие сложности нужны только если оба числа очень маленькие. Но если они сами очень маленькие будут сложности с точностью самих чисел. можно уже изначально считать их равными.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Пред.

Вернуться в Оптимизация

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2