1. wallapopmanager29.04.2025 в 15:02от
Загрузка...
Загрузка...

[Урок]Делаем визуально понятные суммы дене

Тема в разделе "Grand Theft Auto", создана пользователем Tyrgan, 14.01.2013.

Вам помог данный скрипт?

Голосование закрыто 14.01.2014.
  1. да

    50,0%
  2. нет

    50,0%
  1. Tyrgan

    Tyrgan

    Статус:
    Оффлайн
    Регистрация:
    10.09.12
    Сообщения:
    50
    Репутация:
    30 +/-
    Наверно не всем быстро удается понять какая сумма вам была перечислена

    к примеру
    1000000000 //да много нулей но чтобы точно узнать сумму нужно посчитать 0
    а
    1.000.000.000//тут сразу понятно что это за сумму


    Данную подстановку можно сделать при помощи данной небольшой функции:

    PHP:
    stock ReturnMoneyStr(money)
    {
       new 
    n_money_str[5][8];//хранилище в виде строки
       
    new str[32];//выводимая строка денег
       
    new minus;
       if(
    money 0)minus 1,money *= (-1);
       for(new 
    i=0;i<4;i++)
       {
          if(
    money 999)
          {
             
    format(n_money_str[i],8,"%03d",money floatround(money/1000)*1000);
             
    money floatround(money/1000);
          }
          else
          {
              if(
    == 0)
                  
    format(str,sizeof(str),"%d$",money);
              else
              {
                
    format(str,sizeof(str),"%d",money);
                for(new 
    j=i-1;j>-1;j--)
                    
    format(str,sizeof(str),"%s.%s",str,n_money_str[j]);
             if(
    minus == 0)
                   
    format(str,sizeof(str),"%s$",str);
             else
                 
    format(str,sizeof(str),"-%s$",str);
             }
             break;
          }
       }
       return 
    str;
    }
    Как пользоваться:
    PHP:
    printf("%s",ReturnMoneyStr(1234567890));//1.234.567.890$

    Как это работает:
    Если наши деньги меньше 1000 то выполняются только действия
    if(!(money > 999))if(i == 0)format(str,sizeof(str),"%d$",money);

    Но если сумма больше 1000 то
    К примеру money = 12345;
    Тогда выполняется проверка что money > 999 следовательно нам нужно найти 3 последних числа. Для этого мы делим на 1000 исходное число затем округляем до целой части(12345/1000 = 12.345 округлив получаем 12). Затем нам нужно найти остаток для этого от исходного числа отнимаем округлённое(12345-12000 = 345). Таким образом мы нашли 3 числа до запятой. Далее мы уменьшаем наши деньги на 3 последних символа(floatround(money/1000)) и повторяем операцию до тех пор пока деньги после отнятия 3 последних цифр станет меньше 1000. Далее мы восстанавливаем наше число с выставлением '.' между остатками.

    Примечание
    В функции ReturnMoneyStr нужно указывать число, а возвращается строка с преобразованном числом!
     
  2. Craft1k

    Happy New 2013 Year
    Craft1k

    Статус:
    Оффлайн
    Регистрация:
    05.08.11
    Сообщения:
    2.121
    Репутация:
    1.248 +/-
    копипаст или сам писал?
     
  3. Tyrgan

    Tyrgan

    Статус:
    Оффлайн
    Регистрация:
    10.09.12
    Сообщения:
    50
    Репутация:
    30 +/-
    А с чего ты взял что копипаст?
    я не краду работы, так-как не вижу в этом смысла!
     
  4. mama ckazala

    mama ckazala

    Статус:
    Оффлайн
    Регистрация:
    13.11.12
    Сообщения:
    170
    Репутация:
    222 +/-
    Норм пробывал такую вешь. Работает.
     
  5. Smile17

    Smile17

    Статус:
    Оффлайн
    Регистрация:
    04.02.13
    Сообщения:
    232
    Репутация:
    140 +/-
    Не множко не понял, эта функция работает как текстдрав или текст?