Вывести число строкой Intl

262
21 января 2017, 13:53
$text= (new \MessageFormatter('ru-RU', '{n, spellout}'))->format(['n' => '11.101']); 
//выведет: одиннадцать целых сто одна тысячная 
$text= (new \MessageFormatter('ru-RU', '{n, spellout}'))->format(['n' => '11.100']);
//выведет: одиннадцать целых одна десятая

Как сделать так, чтобы выводило одиннадцать целых сто тысячных?

Answer 1

решил проблему так, может быть кому-нибудь пригодиться

    $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;
Answer 2

Во первых такие числа есть и в математике тоже - и называется это точность числа до тысячных. Я могу вам предложить следующий вариант решения

  1. Наследовать класс MessageFormatter

  2. Использовать Полиморфизм подкласса вот так

    class MyMessageFormatter extends MessageFormatter{ public function format($arr){ //переписать под свою логику } }

    $text= (new \MyMessageFormatter('ru-RU', '{n, spellout}'))->format(['n' => '11.100']);

READ ALSO
try catch notice

try catch notice

Почем try catch не ловит ошибки уровня notice? а именно он не ловит не существования индекса массива

326
PHP Parse error: syntax error, unexpected &#39;{&#39;

PHP Parse error: syntax error, unexpected '{'

Есть сайт на wordpress последней версии с php7 на хостинге с минимизированным файлом style_dynamicphp в теме

302
Как внести в бд данные из XML?

Как внести в бд данные из XML?

Ребят пытаюсь внести в базу данные из xml, но ничего не выходитУ меня такое подозрение, что xml не успевают прогрузиться

288