Programación Web y Scripting > PHP
Números A Letras
(1/1)
ibito:
He estado buscando algún script para convertir de números a letras, y creo que no he buscado bien, ando un poco atrasado y casi no me da tiempo de buscar... en fin, alguien tendrá por ahí una url o algún script?
Gracias :rolleyes:
F_Tanori:
:)
http://www.tutorial-enlace.net/tutorial-CO...LETRAS-779.html
http://www.lawebdelprogramador.com/codigo/...id=71&texto=PHP
neorent:
amigo tengo una una duda quieres que te cambie de numero a letras ej $2.000 ; DOS MIL asi necesitas o quieres que el usuario si ecribe 98 le aparesca la letra be que corresponde al codigo ascii? bueno espero tu respuesta :hola:
ibito:
Por ejemplo que cambie de 2000 a dos mil... gracias por los enlaces F_Tanori
MaoBike:
Esta funcion hace lo que necesitas esta probada para hacer facturas.
--- Código: Text --- ### - Esta funcion convierte un numero a una cadena de texto EJ: 150 -> Ciento cincuenta - ### function numerotexto ($numero) { // Primero tomamos el numero y le quitamos los caracteres especiales y extras // Dejando solamente el punto "." que separa los decimales // Si encuentra mas de un punto, devuelve error. // NOTA: Para los paises en que el punto y la coma se usan de forma // inversa, solo hay que cambiar la coma por punto en el array de "extras" // y el punto por coma en el explode de $partes $extras = array("/[\$]/","/ /","/,/","/-/"); $limpio = preg_replace($extras,"",$numero); $partes = explode(".",$limpio); if(count($partes)>2) { return "Error, el numero no es correcto"; exit(); } // Ahora explotamos la parte del numero en elementos de un array que // llamaremos $digitos, y contamos los grupos de tres digitos // resultantes $digitos_piezas = chunk_split ($partes[0],1,"#"); $digitos_piezas = substr($digitos_piezas,0,strlen($digitos_piezas)-1); $digitos = explode("#",$digitos_piezas); $todos = count($digitos); $grupos = ceil (count($digitos)/3); // comenzamos a dar formato a cada grupo $unidad = array ('un','dos','tres','cuatro','cinco','seis','siete','ocho','nueve'); $decenas = array ('diez','once','doce','trece','catorce','quince'); $decena = array ('dieci','veinti','treinta','cuarenta','cincuenta','sesenta','setenta','ochenta','noventa'); $centena = array ('ciento','doscientos','trescientos','cuatrocientos','quinientos','seiscientos','setecientos','ochocientos','novecientos'); $resto = $todos; for($i=1; $i<=$grupos; $i++) { // Hacemos el grupo if($resto>=3) { $corte=3; } else { $corte=$resto; } $offset=(($i*3)-3)+$corte; $offset=$offset*(-1); // la siguiente seccion es una adaptacion de la contribucion de cofyman y JavierB $num = implode("",array_slice ($digitos,$offset,$corte)); $resultado[$i] = ""; $cen = (int) ($num / 100); //Cifra de las centenas $doble = $num - ($cen*100); //Cifras de las decenas y unidades $dec = (int)($num / 10) - ($cen*10); //Cifra de las decenas $uni = $num - ($dec*10) - ($cen*100); //Cifra de las unidades if($cen > 0) { if($num == 100) $resultado[$i] = "cien"; else $resultado[$i] = $centena[$cen-1].' '; }//end if if($doble>0) { if($doble == 20) { $resultado[$i] .= " veinte"; }else if(($doble < 16) and ($doble>9)) { $resultado[$i] .= $decenas[$doble-10]; }else{ $resultado[$i] .=' '. $decena[$dec-1]; }//end if if($dec>2 and $uni<>0) $resultado[$i] .=' y '; if(($uni>0) and ($doble>15) or ($dec==0)) { if($i==1 && $uni == 1) $resultado[$i].="uno"; else if($i==2 && $num == 1) $resultado[$i].=""; else $resultado[$i].=$unidad[$uni-1]; } } // Le agregamos la terminacion del grupo switch($i) { case 2: $resultado[$i].= ($resultado[$i]=="") ? "" : " mil "; break; case 3: $resultado[$i].= ($num==1) ? " millon " : " millones "; break; } $resto-=$corte; } // Sacamos el resultado (primero invertimos el array) $resultado_inv= array_reverse($resultado, TRUE); $final=""; foreach ($resultado_inv as $parte){ $final.=$parte; } return $final; }//End function
Navegación
Ir a la versión completa