本文整理汇总了PHP中text::float方法的典型用法代码示例。如果您正苦于以下问题:PHP text::float方法的具体用法?PHP text::float怎么用?PHP text::float使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类text
的用法示例。
在下文中一共展示了text::float方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: moneytostrf
/**
* Получить денежныую сумму прописью в указаном формате.
*
* @param string $format Шаблон где:
* `%n` - сумма с в формате "1 000 000,00"
* `%N` - сумма с в формате "1 000 000,01", если после запятой == 0, то выводится целая только часть "1 000 000"
* `%o` - часть суммы до запятой числом;
* `%i` - часть суммы до запятой прописью с маленькой буквы;
* `%I` - часть суммы до запятой прописью с большой буквы;
* `%f` - часть суммы после запятой числом;
* `%F` - часть суммы после запятой числом, если == 0, то не выводить;
* `%d` - часть суммы после запятой прописью с маленькой буквы;
* `%D` - часть суммы после запятой прописью с большой буквы;
* `%c` - валюта типа руб., долл. с маленькой буквы
* `%C` - валюта типа руб., долл. с большой буквы
* `%s` - валюта типа коп., цент. с маленькой буквы
* `%S` - валюта типа коп., цент. с большой буквы
* `%e` - страна - костыль, для России нихуя, для штатов суффикс США
* Например "( %i ) %с" -> "( сто двадцать три ) рубля";
* @param int $sum Сумма в виде числа
* @param mixed $currency Индекс валюты:
* 1 - RUR;
* 2 - USD;
* @param string $delimiter Разделитель для конечного варианта
* @param int $case Падеж: 1 - именительный, 2 - родительный, 3 - дательный, 4 - винительный, 5 - творительный, 6 - предложный
* @return Преобразованную строку если число соответствует стандарту, либо исходную строку.
*/
public static function moneytostrf($format, $sum, $currency = 1, $delimiter = '.', $case = 1)
{
// NOTE: Требуется привести к стандарту (123456.89):
// не должно садержать пробелы
// дробная часть после точки `.`
// два знака в дробной части
if ($delimiter == '.') {
$sum = number_format(text::float($sum, array('single_dot_as_decimal' => TRUE)), 2, '.', '');
} else {
$sum = number_format(text::float($sum), 2, '.', '');
}
if (preg_match('/(\\d+)(?:[' . $delimiter . ']{1}(\\d+))?/', $sum, $matches)) {
$_i = '';
$_I = '';
$_d = '';
$_D = '';
$_c = '';
$_C = '';
$_s = '';
$_S = '';
$_o = intval($matches[1]);
$aX = self::$LIBTEXT_GLOBALS['currency'][$currency];
$_f = sprintf("%02d", !empty($matches[2]) ? intval(substr($matches[2], 0, 2)) : 0);
$_F = $_f > 0 ? $_f : '';
$_n = number_format($sum, 2, ',', ' ');
$_N = $_f > 0 ? $_n : number_format(intval($sum), 0, 0, ' ');
$aY = self::$LIBTEXT_GLOBALS['currency2'][$currency];
$x = text::numtostr($_o, 1, $case, 1, 1, $aX);
if (!empty($aX)) {
$x = explode(' ', $x);
$_c = array_pop($x);
$_C = ucfirst($_c);
$_i = join(' ', $x);
} else {
$_i = $x;
}
$_I = ucfirst($_i);
$y = text::numtostr($_f, 1, $case, 2, 1, $aY);
if (!empty($aY)) {
if ($y) {
$y = explode(' ', $y);
$_s = array_pop($y);
$_S = ucfirst($_s);
$_d = join(' ', $y);
$_D = ucfirst($_d);
$_p = $dec . '/100';
} else {
if ($_f == '00') {
$_s = $aY['2']['2'];
$_S = ucfirst($_s);
}
}
} else {
$_d = $y;
}
$_D = ucfirst($_d);
$_p = $dec . '/100';
if ($_c) {
$_e = self::$LIBTEXT_GLOBALS['ccy_postfix'][$currency];
}
$replace_what = array('%n', '%N', '%o', '%i', '%I', '%f', '%F', '%d', '%D', '%p', '%c', '%C', '%s', '%S', '%e');
$replace_with = array($_n, $_N, $_o, $_i, $_I, $_f, $_F, $_d, $_D, $_p, $_c, $_C, $_s, $_S, $_e);
return trim(str_replace($replace_what, $replace_with, $format));
} else {
return $sum;
}
}