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


Автор: adamant 6.3.2006, 01:18
Вот видел такую штуку как разделение больших чисел, но не знаю как так сделать? Причём именно на пхп было! а не на яве... тобишь читалось число и базы и преобразовывалось в число с точкой после 3х нулей...

Автор: Ciber SLasH 6.3.2006, 01:25
Число преобразуется в строку и в нужные позиции вставляется точка.

Автор: adamant 6.3.2006, 01:51
А это как можно пример?

Автор: gAnton 6.3.2006, 02:11
используй number_format:
string number_format ( float number [, int decimals [, string dec_point, string thousands_sep]] )

number_format() returns a formatted version of number. This function accepts either one, two or four parameters (not three):

Автор: adamant 6.3.2006, 02:32
Блин как же плохо ничего не знать о том что действительно необходимо...

Код

<?
$sql_money_check = mssql_query("SELECT Money FROM Character WHERE Name='$name'");
$total_money = mssql_fetch_row($sql_money_check);
echo "$total_money[0]";
?>

$total_money[0] = 1000000000

Как мне это превратить в 1.000.000.000?

smile

Автор: sergejzr 6.3.2006, 02:57
Вот что мне выдал мой воспалённый после вчерашнего мозг.
Код

<?php
$total_money=array();
$total_money[0]="10000000000";
$res=array();

$cnt=0;
for($i=strlen($total_money[0])-1;$i>=0;$i--)
{
array_push($res,$total_money[0][$i]);
if((++$cnt)%3==0&&$i!=0)
array_push($res,".");

}
print join("",array_reverse($res));
?>

Автор: Ciber SLasH 6.3.2006, 02:58
Код

echo number_format($total_money[0], 0, ",", ".");

Автор: adamant 6.3.2006, 05:18
sergej.z - Но Ведь 1000000000 не постоянная велечина, она считываеться из базы smile НО! У СЁ РАНО СПАСИБО....!
Ciber SLasH Спасибо

Автор: CyClon 6.3.2006, 14:53
Может это и очень тупо, но по другому я не умею:

Код
<?php

$string = "1000000";
$string = explode("000", $string);
$new = "";
foreach ($string as $new)
{
    if (!empty($new))
    {
        $int .= $new.".";
    }
    else
    {
        $int .= "000.";
    }
}

echo $int;

?>


+ Какая-то функция (Такая есть, но не помню какая), которая урезает строку с правого края (На 1, точку последнюю убрать).

Автор: Брр 8.3.2006, 02:08
2 adamant а если так:
Код

$number = '1000000';
echo strrev(wordwrap(strrev($number), 3, '.', 1));

Автор: adamant 8.3.2006, 05:03
Брр да прикольно... thx

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