function num2str($L) { global $_1_2, $_1_19, $des, $hang, $namerub, $nametho, $namemil, $namemrd, $kopeek; $s = " "; $s1 = " "; $s2 = " "; #$kop=intval( ( $L*100 - intval( $L )*100 )); $kop = substr(sprintf("%.2f", $L), -2, 2); $L = intval($L); if ($L >= 1000000000) { $many = 0; semantic(intval($L / 1000000000), $s1, $many, 3); $s .= $s1 . $namemrd[$many]; $L %= 1000000000; } if ($L >= 1000000) { $many = 0; semantic(intval($L / 1000000), $s1, $many, 2); $s .= $s1 . $namemil[$many]; $L %= 1000000; if ($L == 0) { $s .= "рублей. "; } } if ($L >= 1000) { $many = 0; semantic(intval($L / 1000), $s1, $many, 1); $s .= $s1 . $nametho[$many]; $L %= 1000; if ($L == 0) { $s .= "рублей. "; } } if ($L != 0) { $many = 0; semantic($L, $s1, $many, 0); #$s.=$s1.$namerub[$many]; $s .= $s1 . "рублей. "; } #if($L == 0){ if ($many == 0) { $many = 0; $s .= "нуль рублей. "; } if ($kop > 0) { $many = 0; #semantic($kop,$s1,$many,1); #$s.=$s1.$kopeek[$many]; #$s.=$s1."КОП "; $s .= $kop . " копеек. "; } else { $s .= " 00 копеек."; } return $s; }
/** * Форматирует число в цену в рублях и копейках. * * @param float $L число * * @return string */ function num2strEx($L) { include_once dirname(__FILE__) . '/sbr.php'; global $_1_2, $_1_19, $des, $hang, $namerub, $nametho, $namemil, $namemrd, $kopeek; $L = round($L, 2); $source = $L; $kop = 100 * (string) round($L - (int) $L, 2); $L = intval($L); $s = ' '; $s1 = ' '; $s2 = ' '; if ($L == 0) { $s .= 'ноль рублей Российской Федерации '; } if ($L >= 1000000000) { $many = 0; semantic(intval($L / 1000000000), $s1, $many, 3); $s .= $s1 . $namemrd[$many]; $L %= 1000000000; } if ($L >= 1000000) { $many = 0; semantic(intval($L / 1000000), $s1, $many, 2); $s .= $s1 . $namemil[$many]; $L %= 1000000; if ($L == 0) { $s = rtrim($s) . ' рублей Российской Федерации '; } } if ($L >= 1000) { $many = 0; semantic(intval($L / 1000), $s1, $many, 1); $s .= $s1 . $nametho[$many]; $L %= 1000; if ($L == 0) { $s = rtrim($s) . ' рублей Российской Федерации '; } } if ($L != 0) { $many = 0; semantic($L, $s1, $many, 0); $s .= rtrim($s1) . ' ' . trim($namerub[$many]) . ' '; } if ($kop > 0) { $s .= str_pad($kop, 2, '0', STR_PAD_LEFT) . ending($kop, ' копейка', ' копейки', ' копеек'); } else { $s .= '00 копеек'; } setlocale(LC_ALL, 'ru_RU.CP1251'); $s = ucfirst(trim($s)); setlocale(LC_ALL, 'en_US.UTF-8'); return trim(sbr_meta::view_cost((double) $source, null, false, ',', ' ') . ' (' . trim($s) . ')'); }
function smarty_function_number_as_text($params, &$smarty) { if (!isset($params['value'])) { return ''; } $value = $params['value']; $first_upper = true; $L = $value; $_1_2[1] = "одна "; $_1_2[2] = "две "; $_1_19[1] = "один "; $_1_19[2] = "два "; $_1_19[3] = "три "; $_1_19[4] = "четыре "; $_1_19[5] = "пять "; $_1_19[6] = "шесть "; $_1_19[7] = "семь "; $_1_19[8] = "восемь "; $_1_19[9] = "девять "; $_1_19[10] = "десять "; $_1_19[11] = "одиннацать "; $_1_19[12] = "двенадцать "; $_1_19[13] = "тринадцать "; $_1_19[14] = "четырнадцать "; $_1_19[15] = "пятнадцать "; $_1_19[16] = "шестнадцать "; $_1_19[17] = "семнадцать "; $_1_19[18] = "восемнадцать "; $_1_19[19] = "девятнадцать "; $des[2] = "двадцать "; $des[3] = "тридцать "; $des[4] = "сорок "; $des[5] = "пятьдесят "; $des[6] = "шестьдесят "; $des[7] = "семьдесят "; $des[8] = "восемдесят "; $des[9] = "девяносто "; $hang[1] = "сто "; $hang[2] = "двести "; $hang[3] = "триста "; $hang[4] = "четыреста "; $hang[5] = "пятьсот "; $hang[6] = "шестьсот "; $hang[7] = "семьсот "; $hang[8] = "восемьсот "; $hang[9] = "девятьсот "; $namerub[1] = "рубль "; $namerub[2] = "рубля "; $namerub[3] = "рублей "; $nametho[1] = "тысяча "; $nametho[2] = "тысячи "; $nametho[3] = "тысяч "; $namemil[1] = "миллион "; $namemil[2] = "миллиона "; $namemil[3] = "миллионов "; $namemrd[1] = "миллиард "; $namemrd[2] = "миллиарда "; $namemrd[3] = "миллиардов "; $kopeek[1] = "копейка "; $kopeek[2] = "копейки "; $kopeek[3] = "копеек "; $s = " "; $s1 = " "; //считаем количество копеек, т.е. дробной части числа $kop = intval($L * 100 - intval($L) * 100); //отбрасываем дробную часть $L = intval($L); if ($L >= 1000000000) { $many = 0; semantic(intval($L / 1000000000), $s1, $many, 3); $s .= $s1 . $namemrd[$many]; $L %= 1000000000; } if ($L >= 1000000) { $many = 0; semantic(intval($L / 1000000), $s1, $many, 2); $s .= $s1 . $namemil[$many]; $L %= 1000000; //аналогично если ровно сколько-то миллионов, то хватит считать } if ($L >= 1000) { $many = 0; semantic(intval($L / 1000), $s1, $many, 1); $s .= $s1 . $nametho[$many]; $L %= 1000; } if ($L != 0) { $many = 0; semantic($L, $s1, $many, 0); $s .= $s1; } $result = trim($s); if (isset($params['assign'])) { $smarty->assign($params['assign'], $result); $result = ''; } return $result; }
function num2str($L) { // --------------------------------------------------------- $_1_2[1] = "одна "; $_1_2[2] = "двi "; $_1_19[1] = "один "; $_1_19[2] = "два "; $_1_19[3] = "три "; $_1_19[4] = "чотири "; $_1_19[5] = "п'ять "; $_1_19[6] = "шiсть "; $_1_19[7] = "сiм "; $_1_19[8] = "вiсiм "; $_1_19[9] = "дев'ять "; $_1_19[10] = "десять "; $_1_19[11] = "одинадцять "; $_1_19[12] = "дванадцять "; $_1_19[13] = "тринадцять "; $_1_19[14] = "чотирнадцять "; $_1_19[15] = "п'ятнадцять "; $_1_19[16] = "шiстнадцять "; $_1_19[17] = "сiмнадцять "; $_1_19[18] = "вiсiмнадцять "; $_1_19[19] = "дев'ятнадцять "; $des[2] = "двадцать "; $des[3] = "тридцять "; $des[4] = "сорок "; $des[5] = "пятьдесят "; $des[6] = "шiстдесят "; $des[7] = "сiмдесят "; $des[8] = "вiсiмдесят "; $des[9] = "дев'яносто "; $hang[1] = "сто "; $hang[2] = "двiстi "; $hang[3] = "триста "; $hang[4] = "чотириста "; $hang[5] = "пятьсот "; $hang[6] = "шiстьсот "; $hang[7] = "сiмсот "; $hang[8] = "вiсiмсот "; $hang[9] = "девятьсот "; $namerub[1] = "гривня "; $namerub[2] = "гривнi "; $namerub[3] = "гривнiв "; $nametho[1] = "тисяча "; $nametho[2] = "тисячi "; $nametho[3] = "тисяч "; $namemil[1] = "мiльйон "; $namemil[2] = "мiльйона "; $namemil[3] = "мiльйонiв "; $namemrd[1] = "мiльярд "; $namemrd[2] = "мiльярда "; $namemrd[3] = "мiльярдiв "; $kopeek[1] = "копiйка "; $kopeek[2] = "копiйки "; $kopeek[3] = "копiйок "; // --------------------------------------------------------- $s = " "; $s1 = " "; //считаем количество копеек, т.е. дробной части числа $kop = intval($L * 100 - intval($L) * 100); //отбрасываем дробную часть $L = intval($L); if ($L >= 1000000000) { $many = 0; semantic(intval($L / 1000000000), $s1, $many, 3); $s .= $s1 . $namemrd[$many]; $L %= 1000000000; //если ровно сколько-то миллиардов, то хватит считать if ($L == 0) { $s .= "гривнiв "; } } if ($L >= 1000000) { $many = 0; semantic(intval($L / 1000000), $s1, $many, 2); $s .= $s1 . $namemil[$many]; $L %= 1000000; //аналогично если ровно сколько-то миллионов, то хватит считать if ($L == 0) { $s .= "гривнiв "; } } if ($L >= 1000) { $many = 0; semantic(intval($L / 1000), $s1, $many, 1); $s .= $s1 . $nametho[$many]; $L %= 1000; if ($L == 0) { $s .= "гривнiв "; } } if ($L != 0) { $many = 0; semantic($L, $s1, $many, 0); $s .= $s1 . $namerub[$many]; } //если есть копейки, то добавим их в итоговую строку if ($kop > 0) { $many = 0; semantic($kop, $s1, $many, 1); $s .= $s1 . $kopeek[$many]; } else { $s .= " 00 копiйок"; } return $s; }