СУММА ПРОПИСЬЮ

                        
<? 
// Функция парсирования триады
// $num - целое число от 0 до 999
// $words - массив, в котором элемент с индексом
// 0 - написание числа 1 (например - "один", "одна")
// 1 - написание числа 2 (аналогично)
// 2 - единицы в единственном числе им.падеже("рубль")
// 3 - единицы в единственном числе род.падеже("рубля")
// 4 - единицы во множественном числе им.падеже("рублей")

Function ParseTriad($num,$words)
{
$hundreds = array("",'сто','двести','триста','четыреста','пятьсот','шестьсот',
'семьсот','восемьсот','девятьсот');
$decads = array('двадцать','тридцать','сорок','пятьдесят','шестьдесят','семьдесят',
'восемьдесят','девяносто');
$fdecads = array('десять','одиннадцать','двенадцать','тринадцать','четырнадцать',
'пятнадцать','шестнадцать','семнадцать','восемнадцать','девятнадцать');
$ones = array("",$words[0],$words[1],'три','четыре','пять','шесть','семь','восемь','девять');

$result = "";

$h = floor($num / 100);

$result .= $hundreds[$h];

$d = floor(($num - $h * 100) / 10);
$c = ($num - $h * 100 - $d*10);

$result.=($result!="")?" ":"";

if ($d==1) {$result .= $fdecads[$c];}
else
{if ($d>1) $result .= $decads[$d-2] . " ";
$result .=$ones[$c];}

$result.=($result!="")?" ":"";

switch ($c)
{
case 1:
$result .= ($d!=1)?$words[2]:$words[4];
break;
case 2:
case 3:
case 4:
$result .= ($d!=1)?$words[3]:$words[4];
break;
default:
if ($num > 0)
{$result .= $words[4];}
}
return $result;
}

// Функция возвращает число прописью
// $num - любое целое число (в данной реализации до 10^12-1)
// $upcase - булев параметр, если тру, то строка с заглавной буквы
Function ParseSum($num,$upcase)
{
$md = floor($num/1e9);
$m = floor(($num - $md*1e9)/1e6);
$t = floor(($num - $md*1e9 - $m*1e6)/1e3);
$h = floor($num - $md*1e9 - $m*1e6 - $t*1e3);

$result = ParseTriad($md,array('один','два','миллиард','миллиарда','миллиардов'));
$result .=($result!="")?" ":"";
$result .= ParseTriad($m,array('один','два','миллион','миллиона','миллионов'));
$result .=($result!="")?" ":"";
$result .= ParseTriad($t,array('одна','две','тысяча','тысячи','тысяч'));
$result .=($result!="")?" ":"";
$result .= ParseTriad($h,array('один','два','рубль','рубля','рублей'));

$result = $upcase?ucfirst($result):$result;
return $result;
}
?>
1 7 0
Без комментариев...