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

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

Модераторы: latteo
  1. dmx

    dmx

    Регистр.:
    22 июн 2011
    Сообщения:
    676
    Симпатии:
    557
    $a - метр
    $aa - сантиметр.
    $a1= число например, 2.23 дробное

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

    Хрень ?
     
  2. Дмитрий Кесаев

    Дмитрий Кесаев aka Zlobniy Babko

    Заблокирован
    Регистр.:
    10 май 2007
    Сообщения:
    1.332
    Симпатии:
    1.266
    PHP:
    <?php
    $a 
    "5";
    $aa "17";
    $a1 "$a.$aa";
    echo 
    $a1;
    ?>
    Выводит: 5.17
    Так или не так?
    Не вкурю что нада?

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

    dmx

    Регистр.:
    22 июн 2011
    Сообщения:
    676
    Симпатии:
    557
    А разве не 517 выведет ?
     
  4. Дмитрий Кесаев

    Дмитрий Кесаев aka Zlobniy Babko

    Заблокирован
    Регистр.:
    10 май 2007
    Сообщения:
    1.332
    Симпатии:
    1.266
    У меня выводит так:

    [​IMG]
     
    dmx нравится это.
  5. Arqin

    Arqin

    Регистр.:
    17 мар 2009
    Сообщения:
    185
    Симпатии:
    37
    Лучше всё приводить в единую систему счисления, а потом выводить на печать в нужных единицах. Это будет правильнее.
    Пример:
    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/>";
    При необходимости форматирования числа используем Перейти по ссылке
     
    dmx нравится это.
  6. dmx

    dmx

    Регистр.:
    22 июн 2011
    Сообщения:
    676
    Симпатии:
    557
    А это : быдлокод?
    Код:
    $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. Arqin

    Arqin

    Регистр.:
    17 мар 2009
    Сообщения:
    185
    Симпатии:
    37
    Нормальный код. Только я бы сделал немного по-другому:
    PHP:
    $a 5;
    $aa 17;
     
    $a1 $a 100 $aa//получаем сумму в сантиметрах!
    $a2 $a1 100//получаем сумму в метрах!
    echo $a1;
    echo 
    '<br />';
    echo 
    $a2
    В случае $a2 вы получите дробное число.

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

    dmx

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

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

    Arqin

    Регистр.:
    17 мар 2009
    Сообщения:
    185
    Симпатии:
    37
    Конкатенация - склеивание строк.
    В случае:
    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. Дмитрий Кесаев

    Дмитрий Кесаев aka Zlobniy Babko

    Заблокирован
    Регистр.:
    10 май 2007
    Сообщения:
    1.332
    Симпатии:
    1.266
    Так давайте копать глубже..
    Через условия... если в примерах 127 миллиметров, т.е нужно через условия доводить до 100, свыше уже пересчет в сантиметры, т.е. +1 см. 27 мм.

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