Cómo convertir números en palabras usando JavaScript

Mucha programación implica cálculos con números, y puede formatear fácilmente los números para mostrarlos agregando comas, decimales, signos negativos y otros caracteres apropiados según el tipo de número que sea..

Pero no siempre presenta sus resultados como parte de una ecuación matemática. La Web para el usuario general se trata más de palabras que de números, por lo que a veces un número que se muestra 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 toparte con dificultades. ¿Cómo convierte los resultados numéricos de sus cálculos cuando necesita el número que se muestra 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 hacer esto es usar el siguiente código; simplemente seleccione el código y cópielo en un archivo llamado toword.js.

// Convertir números a palabras
// copyright 25 de julio de 2006, por Stephen Chapman http://javascript.about.com
// se otorga permiso para usar este Javascript en su página web
// siempre que todo el código (incluido este aviso de copyright) sea
// se usa exactamente como se muestra (puede cambiar el sistema de numeración si lo desea)

// Sistema de numeración americano
var th = [", 'mil', 'millones', 'billones', 'trillones'];
// descomenta esta línea para el sistema de números en inglés
// var th = [", 'mil', 'millones', 'mil millones', 'mil millones'];

var dg = ['cero', 'uno', 'dos', 'tres', 'cuatro',
'cinco', 'seis', 'siete', 'ocho', 'nueve']; var tn =
['diez', 'once', 'doce', 'trece', 'catorce', 'quince', 'dieciseis',
'diecisiete', 'dieciocho', 'diecinueve']; var tw = ['veinte', 'treinta', 'cuarenta', 'cincuenta',
'sesenta', 'setenta', 'ochenta', 'noventa']; función toWords (s) s = s.toString (); s =
s.replace (/ [\,] / g, "); if (s! = parseFloat (s)) devuelve 'no es un número'; var x =
s.indexOf ('.'); if (x == -1) x = s.length; if (x> 15) devuelve 'demasiado grande'; var n =
s.split ("); var str ="; var sk = 0; para (var i = 0; i < x; i++) if
((x-i)% 3 == 2) if (n [i] == '1') str + = tn [Número (n [i + 1])] + "; i ++; sk = 1;
más si (n [i]! = 0) str + = tw [n [i] -2] + "; sk = 1; más si (n [i]! = 0) str + =
dg [n [i]] + "; if ((x-i)% 3 == 0) str + = 'cien'; 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 + =
'punto '; for (var i = x + 1; istr.replace (/ \ s + / g, ");

A continuación, vincule el script al encabezado de su página usando el siguiente código:

var palabras = toWords (num);

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

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 en palabras y con tantos decimales como desee. Si intenta convertir un número mayor que ese, devolverá "demasiado grande".

Los números, comas, espacios y un solo punto para el punto decimal son los únicos caracteres aceptables que se pueden usar para el número que se convierte. 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 moneda en palabras, primero debe eliminar esos símbolos del número y convertirlos en palabras por separado.