Como no encontré ninguno que se adaptara a lo que necesitaba, partiendo de uno que tenía hecho en C, lo hice en C#.
Luego decidí "traducirlo" a PHP. Partiendo de .NET es relativamente sencillo, ya que básicamente se trata de analizar un número y traducirlo.
Tienes las dos versiones disponibles en GitHub y en PHP Classes.
Se trata de una sola clase con un método estático que realiza la conversión.
Su uso es muy sencillo:
C#
string txt1 = Alp3476.A2Num2Txt.ToString("3528.25"); Console.WriteLine(txt1); // tres mil quinientos veintiocho con veinticinco string txt2 = Alp3476.A2Num2Txt.ToString(123456); Console.WriteLine(txt2); // ciento veintitres mil cuatrocientos cincuenta y seis
En la versión de C#, el método está sobrecargado, por lo que admite como parámetro un
double
, o un string
.PHP
include 'Num2Txt.php'; $o = new \Alp3476\Num2Txt(); echo $o->toString(3527.25) . PHP_EOL; // tres mil quinientos veintisiete con veinticinco echo $o->toString(12342245281.890) . PHP_EOL; // doce mil trescientos cuarenta y dos millones doscientos cuarenta y cinco mil ... // ... doscientos ochenta y uno con ochenta y nueve
En PHP, el parámetro se convierte a
float
utilizando floatval()
, por lo que admite cualquier parámetro que se pueda convertir a un número de punto flotante.Los números se redondean a dos dígitos.
Como he comentado, su uso inicial es para imprimir importes en euros (de ahí que se utlicen dos decimales)
Por supuesto que hay muchas clases similares y seguramente más optimizadas, pero si crees que te pueden servir, ahí las tienes.
Son muy sencillas y las podrás adaptar a tus necesidades.
No hay comentarios:
Publicar un comentario