1. Начата процедура восстановления социальных групп. Лидерам старых и новых групп обязательно ознакомиться с регламентом проведения работ.

Подскажите как слиять метр и сантиметр

Тема в разделе 'PHP', создана пользователем dmx, 30 янв 2012.

  1. TopicStarter Overlay

    dmx

    $a - метр
    $aa - сантиметр.
    $a1= число например, 2.23 дробное

    Вот: $a1 = "$a.(.$aa)";

    Хрень ?
  2. Zlobniy Babko aka Spaxy KOKC

    Moderator
    PHP:
    <?php
    $a 
    "5";
    $aa "17";
    $a1 "$a.$aa";
    echo 
    $a1;
    ?>
    Выводит: 5.17
    Так или не так?
    Не вкурю что нада?

    Или надо чтоб из 5.17 разделяло на 5 и на 17?
    dmx нравится это.
  3. TopicStarter Overlay

    dmx

    А разве не 517 выведет ?
  4. Zlobniy Babko aka Spaxy KOKC

    Moderator
    У меня выводит так:

    [IMG]
    dmx нравится это.
  5. Лучше всё приводить в единую систему счисления, а потом выводить на печать в нужных единицах. Это будет правильнее.
    Пример:
    PHP:
    $m 5//В метрах
    $sm 17//В сантиметрах
    $mm 124//В миллиметрах
    //Приводим к общей системе. К примеру к миллиметрам.
    $sum $m*1000 $sm*10 $mm;
    //И вот теперь уже вертим полученное как нам угодно
    echo "Полученная сумма в миллиметрах: $sum<br/>";
    echo 
    "Полученная сумма в сантиметрах: {$sum/10}<br/>";
    echo 
    "Полученная сумма в дециметрах: {$sum/100}<br/>";
    echo 
    "Полученная сумма в метрах: {$sum/1000}<br/>";
    При необходимости форматирования числа используем number_format
    dmx нравится это.
  6. TopicStarter Overlay

    dmx

    А это : быдлокод?
    Код:
    $a = 5;
    $aa = 17;
     
    $a1 = $a * 100 + $aa; //получаем сумму в сантиметрах!
    $a2 = ($a * 100 + $aa) / 100; //получаем сумму в метрах!
    echo $a1;
    echo '<br />';
    echo $a2; 
    Самый главный ворос : $a1 = $a.$aa; Это вообще правильно ? Я получу нецелое число в переменной $a1 - или это просто какое-то слияние :eek:
  7. Нормальный код. Только я бы сделал немного по-другому:
    PHP:
    $a 5;
    $aa 17;
     
    $a1 $a 100 $aa//получаем сумму в сантиметрах!
    $a2 $a1 100//получаем сумму в метрах!
    echo $a1;
    echo 
    '<br />';
    echo 
    $a2
    В случае $a2 вы получите дробное число.

    Не понял вопроса по поводу слияния =) Что вы под ним подразумеваете?
    dmx нравится это.
  8. TopicStarter Overlay

    dmx

    Я в пыхе ещё учусь :).
    $a1 = $a.$aa; - мы и так получаем 5.17 Что мне и требуется. Просто не думал , что при таком слиянии получится 5.17 , а не 517
    И что переменная $a1 получается нормальным числом с которым можно работать ( умножать\делить ).

    В этом коде :
    $a1 = $a.$aa;
    Человек сказал, что здесь не производятся математические вычисления, а идет склеивание переменных. Какая - то конкатенация o_O .
  9. Конкатенация - склеивание строк.
    В случае:
    PHP:
    $a 5;
     
    $aa 17;
     
    $a1 $a.$aa;
     
    echo 
    $a1;
    Вы получите 517 =)
    А в случае:
    PHP:

    $a1 
    "$a.$aa";
    echo 
    $a1;
    Вы получите 5.17 ;)

    Это аналогично тому, что вы бы написали:
    PHP:

    $a1 
    $a.'.'.$aa;
    echo 
    $a1;
    При описании строки в " - двойных кавычках появляется возможность вставлять переменные php без ограничителей.

    Также нужно помнить, что в php есть понятие приведения типов и при математических операциях с полученной строкой - она будет восприниматься как число.
    dmx нравится это.
  10. Zlobniy Babko aka Spaxy KOKC

    Moderator
    Так давайте копать глубже..
    Через условия... если в примерах 127 миллиметров, т.е нужно через условия доводить до 100, свыше уже пересчет в сантиметры, т.е. +1 см. 27 мм.

    Что нада-то?
    Склеивать или рассчитывать?
    dmx нравится это.