¿Quieres saber cómo puedes convertir números a palabras con JavaScript?

Mucha programación incluye cálculos con números, y puede formatear fácilmente los números para mostrarlos añadiendo comas, decimales, signos negativos y otros caracteres apropiados dependiendo del tipo de número que sea.

 

Pero no siempre se presentan los resultados como parte de una ecuación matemática. La Web para el usuario general es más sobre palabras que sobre números, así que a veces un número mostrado como un número no es apropiado.

 

En este caso, necesita el equivalente del número en palabras, no en números. Aquí es donde puedes encontrarte con dificultades. ¿Cómo se convierten los resultados numéricos de los cálculos cuando se necesita que el número se muestre en palabras?

Convertir un número en palabras no es exactamente la tarea más sencilla, pero se puede hacer usando JavaScript que no es demasiado complejo.

JavaScript para convertir números en palabras

Si desea poder realizar estas conversiones en su sitio, necesitará un código JavaScript que pueda realizar la conversión por usted. La forma más sencilla de hacerlo es usar el código de abajo; sólo tienes que seleccionar el código y copiarlo en un archivo llamado toword.js.

 

// Convert numbers to words

// copyright 25th July 2006, by Stephen Chapman http://javascript.about.com

// permission to use this Javascript on your web page is granted

// provided that all of the code (including this copyright notice) is

// used exactly as shown (you can change the numbering system if you wish)

 

// American Numbering System

var th = ['','thousand','million', 'billion','trillion'];

// uncomment this line for English Number System

// var th = ['','thousand','million', 'milliard','billion'];

 

var dg = ['zero','one','two','three','four',

'five','six','seven','eight','nine']; var tn =

['ten','eleven','twelve','thirteen', 'fourteen','fifteen','sixteen',

'seventeen','eighteen','nineteen']; var tw = ['twenty','thirty','forty','fifty',

'sixty','seventy','eighty','ninety']; function toWords(s){s = s.toString(); s =

s.replace(/[\, ]/g,''); if (s != parseFloat(s)) return 'not a number'; var x =

s.indexOf('.'); if (x == -1) x = s.length; if (x > 15) return 'too big'; var n =

s.split(''); var str = ''; var sk = 0; for (var i=0; i < x; i++) {if

((x-i)%3==2) {if (n[i] == '1') {str += tn[Number(n[i+1])] + ' '; i++; sk=1;}

else if (n[i]!=0) {str += tw[n[i]-2] + ' ';sk=1;}} else if (n[i]!=0) {str +=

dg[n[i]] +' '; if ((x-i)%3==0) str += 'hundred ';sk=1;} if ((x-i)%3==1) {if (sk)

str += th[(x-i-1)/3] + ' ';sk=0;}} if (x != s.length) {var y = s.length; str +=

'point '; for (var i=x+1; istr.replace(/\s+/g,' ');}

A continuación, vincule el script en la cabecera de su página utilizando el siguiente código:

 

El paso final es llamar al script para que realice la conversión a palabras por usted. Para convertir un número en palabras sólo tiene que llamar a la función pasándole el número que desea convertir y se le devolverán las palabras correspondientes.

 

var words = toWords(num);

 

Limitaciones de números a palabras

Tenga en cuenta que esta función puede convertir números tan grandes como 999.999.999.999.999.999.999.999 en palabras y con tantos decimales como desee. Si intentas convertir un número más grande que ese, devolverá "demasiado grande".

Los números, las comas, los espacios y un único punto para el punto decimal son los únicos caracteres aceptables que se pueden utilizar para el número que se está convirtiendo. Si contiene algo más allá de estos caracteres, devolverá "no un número".

 

Números negativos

Si desea convertir números negativos de valores de divisas en palabras, debe eliminar primero esos símbolos del número y convertirlos en palabras por separado.

(0 votes)