[SourceBans] 1.5.1 rus Вычислить процент игроков

Тема в разделе "Программирование / Скриптинг", создана пользователем Владислав Кравченко, 3 авг 2015.

  1. Владислав Кравченко

    Владислав Кравченко

    Сообщения:
    6
    Симпатии:
    0
    Доброго времени суток, столкнулся с такой проблемой, не как не получается заменить знак "," запятая в выводе на страничку SB

    PHP:
    $objResponse->addAssign("max_player_all_$sid""innerHTML"'<div style="width:' $info['numplayers'] / $info['maxplayers'] * 100 '%"></div>');
    Как выглядит сформированный код на странице HTML
    HTML:
    <div style="width:61,290322580645%"></div>
    По знаниям css и html запятая не работает, ссылается на warning

    Добрые люди помогите, пожалуйста сформировать этот гребаный вычислитель при помощи
    PHP:
    number_format(0.90);
    Если у меня есть значение 19 и 31 то можно получить процент

    PHP:
    19/31 100 Ответ 61,290322580645%
    А при помощи number_format() можно сделать вывод такой.

    PHP:
    19/31 100 Ответ 61%
    =============================

    Решил свою проблему использованием функции round(3,6561516, 0, PHP_ROUND_HALF_DOWN);

    PHP:
    $objResponse->addAssign("max_player_all_$sid""innerHTML"'<div style="width:' round($info['numplayers'] / $info['maxplayers'] * 1000PHP_ROUND_HALF_DOWN) . '%"></div>'); 
     
    Последнее редактирование: 5 авг 2015
  2. SourceGod

    SourceGod

    Сообщения:
    47
    Симпатии:
    0
    Владислав Кравченко, на что заменить то?
     
  3. Владислав Кравченко

    Владислав Кравченко

    Сообщения:
    6
    Симпатии:
    0
    Привет, нужно как-то переделать отображение значений, а точнее что-бы выглядело так

    Есть число игроков и есть число слотов, что-бы узнать процент мы должны умножить число игроков и сколько слотов на 100(умножить) и мы полчим процент заполнения сервера, это я сделал, а вот вывод на сайт SourceBans выводит (Пример: 61,15315646%)
    Я не пойму как сделать хотя-бы точку в место запятой.

    Если ты знаешь как это сделать буду ооочень благодарен.

    p.s vlad_effect
     
  4. The Night Fury

    The Night Fury Администратор

    Сообщения:
    1.222
    Симпатии:
    916
    Полный код покажи. Если хочешь точные данные выводить, то форматируй так:
    PHP:
    number_format($var8".""");
    Вообще, десятичные параметры (а уж тем более из восьми символов) в CSS ставить не следует -> разумнее сделать вот так:
    PHP:
    number_format($var0"""");
     
  5. SourceGod

    SourceGod

    Сообщения:
    47
    Симпатии:
    0
    А ты прoбывал так
    PHP:
    19.0/31.0 100
     
  6. Владислав Кравченко

    Владислав Кравченко

    Сообщения:
    6
    Симпатии:
    0
    PHP:
    $objResponse = new xajaxResponse();
        global 
    $userbank;
        require 
    INCLUDES_PATH.'/CServerInfo.php';
        
    $sid = (int)$sid;
        
    $res $GLOBALS['db']->GetRow("SELECT sid, ip, port FROM ".DB_PREFIX."_servers WHERE sid = $sid");
        if(empty(
    $res[1]) || empty($res[2]))
            return 
    $objResponse;
        
    $info = array();
        
    $sinfo = new CServerInfo($res[1],$res[2]);
        
    $info $sinfo->getInfo();
        if(
    $type == "servers")
        {
            if(!empty(
    $info['hostname']))
            {
    $objResponse->addAssign("max_player_all_$sid""innerHTML"'<div style="width:' $info['numplayers'] / $info['maxplayers'] * 100 '.0%"></div>');
    }
    }
    Основной отрезок кода
     
  7. TWRP

    TWRP Read Only

    Сообщения:
    317
    Симпатии:
    45
    Можешь полностью раживать коду что и как ? :blush2:
     
  8. Владислав Кравченко

    Владислав Кравченко

    Сообщения:
    6
    Симпатии:
    0
    Решил свою проблему использованием функции round(3,6561516, 0, PHP_ROUND_HALF_DOWN);

    PHP:
    $objResponse->addAssign("max_player_all_$sid""innerHTML"'<div style="width:' round($info['numplayers'] / $info['maxplayers'] * 1000PHP_ROUND_HALF_DOWN) . '%"></div>'); 
    Смотрим мануал он очень простой.