$text= (new \MessageFormatter('ru-RU', '{n, spellout}'))->format(['n' => '11.101']);
//выведет: одиннадцать целых сто одна тысячная
$text= (new \MessageFormatter('ru-RU', '{n, spellout}'))->format(['n' => '11.100']);
//выведет: одиннадцать целых одна десятая
Как сделать так, чтобы выводило одиннадцать целых сто тысячных?
решил проблему так, может быть кому-нибудь пригодиться
$percents_year = "40.4";
$number = sprintf('%.3f', $percents_year);
$res = explode('.', floatval($number));
$num = $res[0];
$dec = isset($res[1]) ? $res[1] : 0;
$res = explode('.',$number);
$decStr = isset($res[1]) ? $res[1] : 0;
if (floatval($dec) < 100) {
$first = (new \MessageFormatter('ru-RU', '{n, spellout}'))->format(['n' => $num]);
$secont = (new \MessageFormatter('ru-RU', '{n, spellout}'))->format(['n' => $decStr]);
$resText = $first . ' целых ' . $secont . ' тысячных';
} else {
$resText = (new \MessageFormatter('ru-RU', '{n, spellout}'))->format(['n' => $number]);
}
$percents_year_text = $resText;
Во первых такие числа есть и в математике тоже - и называется это точность числа до тысячных. Я могу вам предложить следующий вариант решения
Наследовать класс MessageFormatter
Использовать Полиморфизм подкласса вот так
class MyMessageFormatter extends MessageFormatter{ public function format($arr){ //переписать под свою логику } }
$text= (new \MyMessageFormatter('ru-RU', '{n, spellout}'))->format(['n' => '11.100']);
Почем try catch не ловит ошибки уровня notice? а именно он не ловит не существования индекса массива
Есть сайт на wordpress последней версии с php7 на хостинге с минимизированным файлом style_dynamicphp в теме
Ребят пытаюсь внести в базу данные из xml, но ничего не выходитУ меня такое подозрение, что xml не успевают прогрузиться