cognitus/numbertowords-esp

该软件包已废弃,不再维护。未建议替代软件包。

将数字或数字字符串转换为相应的文字值。

2.0.1 2022-04-26 16:04 UTC

This package is auto-updated.

Last update: 2024-05-26 20:30:11 UTC


README

将数字或数字字符串转换为相应的文字值。

它是 xarenisoft/numbertowords-esp 的分支

安装

composer require cognitus/numbertowords-esp

方法

convertir(string $number,string $moneda = '',string $centimos = '',string $suffix='', int $flags = 0):string

参数

number.

要转换成文字的数字或数字字符串

moneda

要添加到数值整数部分末尾的货币文本。例如:PESOS

centimos

如果指定,则是货币的百分位数,例如:CENTAVOS,如果没有指定此值或为空字符串,则使用格式##/100

suffix

后缀,默认情况下,仅在格式为##/100时添加到字符串末尾,可以通过最后参数的标志更改此行为。

flags

用于更改方法行为的标志

使用方法

use Xarenisoft\NumberToWords\Esp\NumeroALetras;
$letras = NumeroALetras::convertir(12345);
//Tambien es posible recibir cadenas numericas

echo  NumeroALetras::convertir("121,311,321.21",'PESOS','CENTAVOS');
//CIENTO VENTIUN MILLONES TRESCIENTOS ONCE MIL TRESCIENTOS VENTIUN PESOS 21/100
echo NumeroALetras::convertir("$ 121,311,321.21",'PESOS','CENTAVOS');
//CIENTO VENTIUN MILLONES TRESCIENTOS ONCE MIL TRESCIENTOS VENTIUN PESOS 21/100
echo NumeroALetras::convertir("$-12131321.21",'PESOS','CENTAVOS');
//MENOS DOCE MILLONES CIENTO TREINTA Y UN MIL TRESCIENTOS VENTIUN PESOS CON VENTIUN CENTAVOS

除了选择分隔符和货币符号外

NumeroALetras::$currencySymbol='€';
NumeroALetras::$thousandSeparator='.';
NumeroALetras::$decimalSeparator=',';
echo NumeroALetras::convertir("12.345,67 €",'EUROS','','EUR');
//DOCE MIL TRESCIENTOS CUARENTA Y CINCO EUROS 67/100 EUR

甚至使用currencySymbol,可以接受以下格式

NumeroALetras::$currencySymbol='MXN';
echo NumeroALetras::convertir("-12131321.21 MXN",'PESOS','CENTAVOS');
//MENOS DOCE MILLONES CIENTO TREINTA Y UN MIL TRESCIENTOS VENTIUN PESOS CON VENTIUN CENTAVOS

使用标志配置方法

//forzando representar centimos cuando es cero:
NumeroALetras::convertir("121,311,321.0",'PESOS','','M.N.',NumeroALetras::FORZAR_CENTIMOS);
//CIENTO VENTIUN MILLONES TRESCIENTOS ONCE MIL TRESCIENTOS VENTIUN PESOS 00/100 M.N.

//forzando usar sufijo a pesar de que el formato es CENTAVOS
NumeroALetras::convertir("121,311,321.21",'PESOS','CENTAVOS','MXN',NumeroALetras::FORZAR_CENTIMOS|NumeroALetras::SUFFIX_SIEMPRE);
//CIENTO VENTIUN MILLONES TRESCIENTOS ONCE MIL TRESCIENTOS VENTIUN PESOS CON VENTIUN CENTAVOS MXN'

异常

如果数字/数字字符串超过百亿,则抛出InvalidArgumentException异常

致谢

基于PHP类 AxiaCore/numero-a-letras