sfadless/number-to-string-converter

将数字转换为文本

2.0.2 2021-02-16 10:31 UTC

This package is auto-updated.

Last update: 2024-09-16 18:43:22 UTC


README

将数字转换为字符串

文档

基本用法

use Sfadless\NumberToStringConverter\Language\Russian\RussianLanguageFactory;
use Sfadless\NumberToStringConverter\NumberToStringConverter;

$factory = new RussianLanguageFactory();
$russianLanguage = $factory->create();

$converter = new NumberToStringConverter($russianLanguage);

$converter->convert(33.27); //тридцать три рубля двадцать семь копеек

输出模板

您可以使用模板来控制输出。默认模板是 "%i_string% %i_currency% %f_string% %f_currency%"。这意味着,对于数字 11.12,默认输出将是 "одиннадцать рублей двенадцать копеек"。默认情况下,模板中可用的变量有 %i_string%,%i_value%,%i_currency%,%f_string%,%f_value%,%f_currency%。

$template = '%i_value% %i_currency% %f_value% %f_currency%';
$converter->convert(12.22, ['template' => $template]); // 12 рублей 22 копейки

在模板中添加变量

如果您需要,您可以在模板中添加自己的变量,您将完全控制输出。

use Sfadless\NumberToStringConverter\Language\Russian\Output\Output;
use Sfadless\NumberToStringConverter\Language\Russian\Output\OutputVariable;

$variable = new OutputVariable('i_short_curency', function (Output $output) {
    return mb_substr($output->getInteger()->getCurrency(), 0, 3);
});

$template = '%i_value% %i_short_curency%';

$converter->convert(12, ['template' => $template, 'variables' => [$variable]]); // 12 руб

更改货币

默认情况下,货币是卢布。您可以创建任何您喜欢的货币。

use Sfadless\NumberToStringConverter\Language\Russian\Currency;
use Sfadless\NumberToStringConverter\Language\Russian\Declension\Declension;

$currency = new Currency(
    new Declension('доллар', 'доллара', 'долларов', Declension::GENDER_M),
    new Declension('цент', 'цента', 'центов', Declension::GENDER_M)
);

$converter->convert(3.05, ['currency' => $currency]); //три доллара пять центов