За последние 24 часа нас посетили 23753 программиста и 1859 роботов. Сейчас ищут 1858 программистов ...

Подскажите есть переменные которые ввыводят отрицательные...

Тема в разделе "Вопросы от блондинок", создана пользователем ccoll, 2 мар 2010.

Статус темы:
Закрыта.
  1. ccoll

    ccoll Активный пользователь

    С нами с:
    29 янв 2010
    Сообщения:
    8
    Симпатии:
    0
    Есть переменные, которые иногда ввыводят на станичку php отрицательные значения.

    $str = "other |".data_size($traffic[0]['in']-$sum_in)."|".data_size($traffic[0]['out']-$sum_out)."|<b>".data_size($traffic[0]['in']+$traffic[0]['out']-$sum)."</b>";


    К примеру:
    .data_size($traffic[0]['in']-$sum_in) вывод будет 10
    .data_size($traffic[0]['out']-$sum_out) вывод будет -20
    .data_size($traffic[0]['in']+$traffic[0]['out']-$sum) вывод будет 60

    Как сделать так чтобы минус не отображался?
     
  2. engager

    engager Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    есть функция abs
    есть функция str_replace
    выбирай на вкус
     
  3. ccoll

    ccoll Активный пользователь

    С нами с:
    29 янв 2010
    Сообщения:
    8
    Симпатии:
    0
    Как это реализовать тут:
    $str = "other |".data_size($traffic[0]['in']-$sum_in)."|".data_size($traffic[0]['out']-$sum_out)."|<b>".data_size($traffic[0]['in']+$traffic[0]['out']-$sum)."</b>";


    Это data_size поменять на abs?
    Заранее благодарю....
     
  4. engager

    engager Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    думать совсем не хочется?

    Код (Text):
    1. echo(abs(-20)); // покажет 20
    2. echo(str_replace('-', '', '-20')); // покажет 20
     
  5. ccoll

    ccoll Активный пользователь

    С нами с:
    29 янв 2010
    Сообщения:
    8
    Симпатии:
    0
    engager
    Думать хочется, просто я не силен в php, поэтому и учусь.....
     
  6. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    ccoll
    Ладно, предположим, что вы не сильны в функциях РНР и тому подобном, вы не знаете, как получить модуль числа.
    Но неужели вы такой уж неудачник в математике, что не можете сделать простейшую операцию - умножить на -1 ?
    Простейший вариант для тех, кто вообще не знает ни одной функции, и ипользует лишь языковые конструкции и условия:

    PHP:
    1. <?php
    2.  
    3. $foo = 24;
    4. $bar = -36;
    5.  
    6. if($foo < 0) $foo = ($foo * -1);
    7. if($bar < 0) $bar = ($bar * -1);
    8.  
    9. echo $bar.'<br>';
    10. echo $foo;
    11.  
    12. ?>
    И это простейший вариант, основанный на математике и, кроме того, тут даже не используется "*=", позволяющая не писать длинные конструкции, и не используется тернарный оператор.

    Ниже идет наидибильнейший вариант для лузеров:
    PHP:
    1. <?php
    2.  
    3. $foo = -2;
    4.  
    5. // Get absolute value
    6. $foo = sqrt($foo*$foo);
    7.  
    8. ?>
     
  7. ccoll

    ccoll Активный пользователь

    С нами с:
    29 янв 2010
    Сообщения:
    8
    Симпатии:
    0

    Не подходит, так как значение может быть и с плюсом. Мне и надо, чтобы при любом значение положительно, отрицательное, вывод должен быть положительный, если -20 получилось, то мне надо чтобы было 20.
     
  8. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    Apple
    можешь матюкнуться )
     
  9. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Ты идиот или как?
    Посмотри наверх ещё раз ВНИМАТЕЛЬНО, или ты даже сравнения не видишь, что число может быть ЛЮБЫМ - хоть положительным, хоть отрицательным? Или религия не позволяет это признать?
    Ну и люди блин пошли: сами невнимательные, а аргументы вон какие железные.

    В конце-концов можно было задать функцию, область определения которой будет [-n; 0], где n принадлежит Z.
    После, по псевдо графику, уже искать область положительных значений (умеем работать с векторами?).
    Да, это извращение, но это извращение реально решает все проблемы .... впрочем да, какой график функции, если о функциях ничего не известно.
     
  10. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Я вот-вот собирался =))
     
  11. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    PHP:
    1. <?php
    2.  
    3.  $foo = -2;
    4.  
    5.  // Get absolute value
    6.  $foo = sqrt($foo*$foo);
    7.  
    8.  ?>
    ХАаххааххааххахахахаах аааааааааааааааааааааааааааа ахахахахаххахахахахаха :DDDDDDDDDD
     
  12. ccoll

    ccoll Активный пользователь

    С нами с:
    29 янв 2010
    Сообщения:
    8
    Симпатии:
    0
    Вот так сделал:
    $ssa = abs ($traffic[0]['in']-$sum_in);
    $ssb = abs ($traffic[0]['out']-$sum_out);
    $ssc = abs ($traffic[0]['in']+$traffic[0]['out']-$sum);
    $str = "other |".data_size($ssa)."|".data_size($ssb)."|<b>".data_size($ssc)."</b>";

    Всем спасибо......
     
  13. ccoll

    ccoll Активный пользователь

    С нами с:
    29 янв 2010
    Сообщения:
    8
    Симпатии:
    0
    Apple
    Попроще говори. Сообщения своё подправь, что за высказывания в мой адрес, я на тебя не наезжал....
    Я в php нешарю. Поэтому и попросил помощи.
     
  14. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Padaboo
    Давай поиграем в игру.
    Предлагаю изобрести самый извращенный способ нахождения модуля числа.
    Использовать можно все доступные в РНР способы =)
     
  15. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    А причем тут РНР?
    Словами можно сформулировать:
    "Если число меньше нуля, то умножим его на -1 и результат присвоим переменной foo".
    Другой вариант:
    "Если в качестве сомножителей взять само число и -1, то произведение всегда будет равно этому числу с противоположным знаком".
    Это не РНР, это простая логика.

    Почему я это говорю, когда есть готовая функция abs?
    Да потому что это программирование, и кроме умения пользоваться готовыми функциями требуется ещё и умение пользоваться аналитическим и логическим мышлением.
     
  16. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    PHP:
    1. <?
    2. if(preg_match('/^\-([0-9]*)$/,$n,$math))$n=$math[1];
     
  17. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    PHP:
    1. <?php
    2. $foo=-10;
    3. $row=explode('-',$foo);
    4. echo $row[1];
    5. ?>
    xDD
     
  18. ccoll

    ccoll Активный пользователь

    С нами с:
    29 янв 2010
    Сообщения:
    8
    Симпатии:
    0
    Apple
    Я рад за тебя что такой продвинутый программист, я не программист. Мне просто надо было подправить программу, которую я хотел бы внедрить на предприятии и я сделал это. А пеной ненадо брызгать!
     
  19. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Правильно говорить "исходить желчью" )))
    Правда, Padaboo?
     
  20. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    PHP:
    1. <?php
    2. function dai_modul($a){
    3.     ob_start();
    4.     printf("%+d".PHP_EOL, $a);
    5.     $str=ob_get_clean();
    6.     return substr($str,1);
    7. }
    8.  
    9. echo dai_modul(-50), "<br>";
    10. echo dai_modul(80);
     
  21. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Apple
    угу))))но правильно исходить желчью в помойке :DD всех блондинок распугаешь)))
     
  22. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    смотель левый бит
    =)
     
Статус темы:
Закрыта.