Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 1 из 1

Тема: floatcmp

  1. #1
    Аватар для Daniel_Cortez
    new fuck_logic[0] = EOS;

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    1,656
    Репутация:
    2144 ±

    floatcmp

    Описание:
    Сравнивает два вещественных числа.

    Параметры:
    Float:oper1 - число 1.
    Float:oper2 - число 2.

    Возвращаемое значение:
    Возвращает 0, если числа равны; 1, если первый операнд больше второго, и -1, если второй операнд больше первого.

    Примечания:
    • Возвращаемые функцией значения чем-то похожи на результат вычитания (oper1-oper2).
      Если числа равны, результат вычитания - 0, отрицательный результат - функция вернёт -1, положительный - 1.
    • При обычном сравнении вещественных чисел (>, <, >=, <=) функция floatcmp используется косвенно, вызываясь из функции-"обёртки" на Pawn.
      Для каждого оператора сравнения вещ. чисел есть своя функция-обёртка, по-своему обрабатывающая результат, возвращаемый floatcmp (см. файл float.inc).
      Смысл использования floatcmp напрямую в том, что тогда получится миновать вызов функции-обёртки, благодаря чему вы можете получить прирост в производительности своего кода.
      Особенно полезно, когда сравнение проводится в цикле (например, при обработке координат всех машин на сервере или при проверке здоровья/брони игроков).
    • Для проверки на равенство/неравенство (==, !=) лучше использовать оператор переопределения тега : и сравнивать оба числа, как целые, минуя вызов нативной функции:
      PHP код:
      if(_:oper1 == _:oper2
      Внимание! Данную оптимизацию можно использовать только при использовании операторов == и !=. Проверки >, <, >= и <= будут работать неправильно, если привести операнды к целочисленному тегу.


    Пример использования:
    PHP код:
    CMD:checkmyhealth(playeridparams[])
    {
        new 
    Float:health;
        
    GetPlayerHealth(playeridhealth);
        if(
    floatcmp(health100) >= 0// если 0 или 1, здоровье равно или больше 100.0
            
    return SendClientMessage(playerid, -1"Ваше здоровье в норме.");

    Статью подготовил: Daniel_Cortez
    Специально для Pro-Pawn.ru
    Копирование данной статьи на других ресурсах без разрешения автора запрещено!
    Индивидуально в PM и Skype по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
    SA-MP 0.4 is a lie

  2. 6 пользователя(ей) сказали cпасибо:
    #ball (30.05.2015)#Vito (31.05.2015)Avertus (30.05.2015)gangzone.ini (30.05.2015)Nexius_Tailer (25.11.2017)Snoop_Dog (30.05.2015)
 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •