NumeroALetras es una biblioteca escrita en Go que convierte valores numéricos a su representación literal en español. Es útil para facturación, reportes financieros, documentos legales y cualquier sistema donde se requiera expresar montos en texto.
Este proyecto está basado en la biblioteca php-numero-a-letras desarrollada por @luecano
- Conversión de números enteros y decimales a palabras en español.
- Representación de montos con moneda y centavos.
- Formato especial para facturación electrónica SUNAT (
45.50
→CUARENTA Y CINCO 50/100 SOLES
). - Apócope opcional de “UNO” a “UN”.
- Corrección de acentos en casos especiales (
VEINTIDÓS
,VEINTITRÉS
,VEINTISÉIS
). - Personalización del conector (por defecto: "CON").
go get github.com/user0608/numeroaletras
n := numeroaletras.NewNumeroALetras()
res, _ := n.ToWords(1100, 0)
fmt.Println(res)
// Salida: "MIL CIEN"
n := numeroaletras.NewNumeroALetras()
n.UseApocope(true)
res, _ := n.ToWords(101, 0)
fmt.Println(res + " AÑOS")
// Salida: "CIENTO UN AÑOS"
n := numeroaletras.NewNumeroALetras()
res, _ := n.ToMoney(2500.90, 2, "DÓLARES", "CENTAVOS")
fmt.Println(res)
// Salida: "DOS MIL QUINIENTOS DÓLARES CON NOVENTA CENTAVOS"
n := numeroaletras.NewNumeroALetras()
n.Conector = "Y"
res, _ := n.ToMoney(11.10, 2, "pesos", "centavos")
fmt.Println(res)
// Salida: "ONCE PESOS Y DIEZ CENTAVOS"
n := numeroaletras.NewNumeroALetras()
res, _ := n.ToInvoice(1700.50, 2, "soles")
fmt.Println(res)
// Salida: "MIL SETECIENTOS CON 50/100 SOLES"
n := numeroaletras.NewNumeroALetras()
res, _ := n.ToString(5.2, 1, "años", "meses")
fmt.Println(res)
// Salida: "CINCO AÑOS CON DOS MESES"