Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > проблема с выводом числа


Автор: Нурик Сакура 10.3.2006, 17:08
У меня проблема. Может это где-то и написано, но я, значит, слепой, ибо не увидел. У меня такая проблема: у меня есть число с несколькими знаками после запятой. Как мне вывести только целую часть?

Автор: Guedda 10.3.2006, 17:15
Код

<?php
echo round(3.4);        // 3
echo round(3.5);        // 4
echo round(3.6);        // 4
echo round(3.6, 0);      // 4
echo round(1.95583, 2);  // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2);    // 5.05
echo round(5.055, 2);    // 5.06
?>

Взято http://ru.php.net/manual/en/function.round.php.

Автор: Нурик Сакура 10.3.2006, 17:18
Огромное спасибо, плюсонул бы, но пока не могу. За мной остается должок =) Просто я уже замучался.

Кстати, а с print его как-то можно использовать?
Добавлено @ 17:25
Хотя, это не обязательно..

Автор: $дмитрий 10.3.2006, 18:25
Код

echo ceil(8.1);
echo floor(8.1);


далее извращения
Код

$Exp = explode('.',"8.1");
echo $Exp[0];
echo preg_replace("#(\d)*\..*#","$1","8.1");

Автор: Guedda 10.3.2006, 18:50
echo и print - одно и то же. Поэтому можешь использовать и с print

Автор: Нурик Сакура 10.3.2006, 19:42
Я имел в виду, что у меня есть строка вида

Код

    print("<table border=1 bgcolor=black align=center>\n" .
          "\t<tr>\n" .
          "\t<td><img src=images/gold.gif border=0> <font color=white>$gold</font></td>\n" .
          "\t<td><img src=images/wood.gif border=0> <font color=white>$wood</font></td>\n" .
          "</tr>\n" .
          "</table>\n");


вот обе переменные ($gold & $wood) мне нужно округлить. Как в принт тут вставить round()? Потому что сейчас у меня такой изврат:

Код

    print("<table border=1 bgcolor=black align=center>\n" .
          "\t<tr>\n" .
          "\t<td><img src=images/gold.gif border=0><font color=white> ");
    echo round($gold);
    print("</font></td>\n" .
          "\t<td><img src=images/wood.gif border=0><font color=white> ");
    echo round($wood);
    print("</font></td>\n" .
          "</tr>\n" .
          "</table>\n");

Автор: Нурик Сакура 10.3.2006, 20:31
да, кстати, $дмитрий, я не очень разбираюсь еще в PHP и с регулярными выражениями не работал. Что твой второй пример делает?

И еще один такой вопросец, более усложненный вариант:

Округлить число, вывести его и, если в числе присутствуют тысячи - отделить их точкой. Ну, к примеру, число пятьсот семьдесят три так и будет выглядеть: 573, а миллион триста тысяч будет выглядеть так: 1.300.000

Кто-то подскажет, как это делать?

Автор: Нурик Сакура 10.3.2006, 21:06
Цитата(Nurik @ 10.3.2006, 19:42 Найти цитируемый пост)
Как в принт тут вставить round()?

С этим я уже разобрался, на это отвечать не надо.

Плиз, помогите кто-то, кто знает, как организовать и округление, и вывод с разбиением?

Автор: sugee 11.3.2006, 01:25
По поводу разбиения точками...
Исходи из того что число ты выводишь как строку.
Вот так например можно отделить точкой последние три нуля.
Код

$str=1300000;
if(strlen($str)>3) { $sub1=substr($str, 0, strlen($str)-3).".";
$sub2=substr($str, strlen($str)-3);
echo $str=$sub1.$sub2;
}

Автор: Ciber SLasH 11.3.2006, 01:42
Цитата(Nurik @ 10.3.2006, 20:31 Найти цитируемый пост)
если в числе присутствуют тысячи - отделить их точкой

http://forum.vingrad.ru/index.php?showtopic=86319&view=findpost&p=662671

Автор: Guedda 11.3.2006, 11:54
Цитата(Nurik @ 10.3.2006, 21:31)
да, кстати, $дмитрий, я не очень разбираюсь еще в PHP и с регулярными выражениями не работал. Что твой второй пример делает?

Ответы ты найдешь по этим ссылкам:
http://www.izone.kiev.ua/articles/317.htm
http://articles.org.ru/cfaq/index.php?qid=84&catid=14
http://zeiss.net.ru/docs/izone/izone332/pub/izone1s.htm
http://gid.gorodok.net/index.php?module=articles&page=0&title_id=programming&mode=show_articl&id=22.01.20062645-0.dat
http://www.truemind.ru/articles/article/612.html
http://library.hosting-design.net/28/009/article/#b

Думаю, что здесь достаточно информации для изучения

Автор: Нурик Сакура 11.3.2006, 19:48
Guedda, спасибо, ссылки сохранил, почитаю позже, когда будет свободное время.

Ciber SLasH, спасибо, но там идет речь о простом разбиении. А мне нужно еще и округлить число.

sugee, спасибо за пример, но это только для тысяч, а у меня могут быть и миллионы, а может и миллиарды (хотя это вряд ли, но все же). И мне нужно осуществить не просто разбиение точками, а считаное в переменную из БД число округлить, вывести округленное число, и разбить его точками при необходимости.

Автор: Ciber SLasH 11.3.2006, 21:07
Цитата(Nurik @ 11.3.2006, 19:48 Найти цитируемый пост)
но там идет речь о простом разбиении. А мне нужно еще и округлить число.

А не судьба сначала округлить, а потом разбить ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)