# Convert Number To Letter -Spanish-

By Cristian Bullokles
on July 26, 2003

Version: 1.0

Type: Function

Category: Algorithms

Description: This code translate a number to letter in Spanish

```<?php
#
# Number to String
#
#-----------------------------------------------
# Examples
#
# Use   : number2string(169)
# Return: ciento sesenta y nueve
#
# Use   : number2string(35.652)
# Return: treinta y cinco con seis cientos cincuenta y dos
#
#

function tercia(\$num)
{
\$teens=array(0=>'diez',1=>'once',2=>'doce',3=>'trece',4=>'catorce',6=>'quince');
\$tens=array(1=>'diez',2=>'veinte',3=>'treinta',4=>'cuarenta',5=>'cincuenta',6=>'sesenta',7=>'setenta',8=>'ochenta',9=>'noventa');

\$numero=''.\$num;
if (strlen(\$numero) == 1)
\$numero='00'.\$numero;
if (strlen(\$numero) == 2)
\$numero='0'.\$numero;
\$a=\$numero[0];
\$b=\$numero[1];
\$c=\$numero[2];

//PARA DEBUG
//    echo "A: \$a<br>";
//    echo "B: \$b<br>";
//    echo "C: \$c<br>";

if(\$a == 0)
{
if(\$b == 0)
{

}
else if(\$b == 1)
{
if(\$c >= 0 && \$c <= 5)
{
}
else if(\$c >= 6 and \$c <= 9)
{
}
}
else if(\$b == 2)
{
if(\$c==0)
{
}
else if(\$c > 0 and \$c <= 9)
{
}
}
else if(\$b >=3 and \$b <= 9)
{
if (\$c == 0)
{
}
if (\$c >= 1 and \$c <= 9)
{
}
}
}
if (\$a == 1)
{
if(\$b == 0)
{
if(\$c == 0)
{
}
else if( \$c > 0 and \$c <= 9)
{
}
}
else if( \$b == 1)
{
if (\$c >= 0 and \$c <= 5)
{
}
else if(\$c >= 6 and \$c <= 9)
{
}
}
else if(\$b == 2)
{
if(\$c == 0)
{
}
else if(\$c > 0 and \$c <= 9)
{
}
}
else if(\$b >= 3 and \$b <= 9)
{
if(\$c == 0)
{
}
else if(\$c > 0 and \$c <= 9)
{
}
}
}
else if(\$a >= 2 and \$a <= 9)
{
if (\$a == 5)
{   \$prefix='quinientos ';  }
else if(\$a == 7)
{   \$prefix='setecientos '; }
else if(\$a == 9)
{   \$prefix='novecientos '; }
else

if(\$b == 0)
{
if(\$c == 0)
{
}
else if(\$c > 0 and \$c <= 9)
{
}
}
else if(\$b == 1)
{
if ( \$c >= 0 and \$c <= 5 )
{
}
else if(\$c >= 6 and \$c <= 9)
{
}
}
else if(\$b == 2)
{
if(\$c == 0)
{
}
else if(\$c > 0 and \$c <= 9)
{
}
}
else if(\$b >= 3 and \$b <= 9)
{
if(\$c == 0)
{
}
else if(\$c > 0 and \$c <= 9)
{
}
}
}
}

function principal(\$num)
{
\$result='';
\$numero=''.\$num;

if(strlen(\$numero) == 1)
\$numero='00000000'.\$numero;
if(strlen(\$numero) == 2)
\$numero='0000000'.\$numero;
if(strlen(\$numero) == 3)
\$numero='000000'.\$numero;
if(strlen(\$numero) == 4)
\$numero='00000'.\$numero;
if(strlen(\$numero) == 5)
\$numero='0000'.\$numero;
if(strlen(\$numero) == 6)
\$numero='000'.\$numero;
if(strlen(\$numero) == 7)
\$numero='00'.\$numero;
if(strlen(\$numero) == 8)
\$numero='0'.\$numero;
\$posicion=1;

for(\$j=0;\$j<3;\$j++)
{
\$i=\$j*3;
\$valor=\$numero[\$i].\$numero[\$i+1].\$numero[\$i+2];
if ( \$valor != 0 )
{
\$res=tercia(\$valor);
if(\$i == 0)
{
\$result=\$res." millones ";
}
else if(\$i == 3)
{
\$result=\$result.\$res." mil ";
}
else if(\$i == 6)
{
\$result=\$result.''.\$res;
}
}
}
return \$result;
}
function number2string(\$number)
{
if(! is_numeric(\$number) )
return "Numero invalido";
\$number=''.\$number;
list(\$entero,\$fraccion)=split('.',\$number);
if(\$fraccion>0)
\$result=principal(\$entero).' con '.principal(\$fraccion);
else
\$result=principal(\$entero);

return \$result;
}

?>```
﻿