También disponible en: English · Português · Français · العربية
Símbolos de monedas
Las 178 monedas con sus símbolos, códigos y decimales, y una explicación honesta de por qué el símbolo es la parte menos fiable.
¿Qué son los símbolos de moneda?
Un símbolo de moneda es la marca que se escribe junto a una cantidad: $, €, £, ¥. Todo el mundo sabe lo que son, y casi cualquier tabla de símbolos que hay en la web se presenta bajo el rótulo «ISO 4217». Esa atribución es falsa, y de un modo interesante: la norma ISO 4217 no define ni un solo símbolo.
La mantiene SIX Financial Information por encargo de ISO, y su lista publicada tiene exactamente cinco campos por entrada: nombre del país, nombre de la moneda, código alfabético de tres letras, código numérico de tres cifras y número de unidades menores. No hay columna de símbolo. Esto lo comprobamos en el generador en vez de darlo por supuesto, así que si una edición futura la añadiera, la compilación fallaría en lugar de dejar la página callada y equivocada.
Entonces, ¿de dónde salen los símbolos? De Unicode CLDR, los mismos datos que usan tu sistema operativo y tu navegador para dar formato al dinero. Es otra clase de autoridad que responde a otra pregunta: ISO dice cómo se llama una moneda y cómo se divide; CLDR dice cómo se escribe en un sitio concreto. Esta página lleva ambas cosas, una al lado de la otra, que es la única manera honesta de presentarlas.
La tabla recoge los 178 códigos de la lista vigente de ISO, incluidos los que se olvidan: el oro es XAU, el derecho especial de giro del FMI es XDR y XXX es el código que significa formalmente «ninguna moneda».
Cómo usar esta página
- Busca una moneda por lo que sepas de ella. El buscador encuentra por nombre, código de tres letras, código numérico y símbolo. Las coincidencias exactas de código van primero, y eso importa más de lo que parece: si no, buscar «eur» devolvería el euro WIR y cuatro unidades de cuenta europeas por delante del euro.
- Cambia la variante para ver cómo se mueve el símbolo. El selector cambia para qué lector están escritos los símbolos. Fíjate en el dólar australiano mientras lo haces: es A$ para un estadounidense, un simple $ para un australiano, AU$ para un canadiense y «$ AU» en francés. La misma moneda, seis grafías distintas en trece variantes.
- Pulsa cualquier código o símbolo para copiarlo. Todo lo de la tabla es un botón de copia. Al usarlo no se sube nada: el conjunto de datos ya está en tu navegador.
El símbolo depende de quién lo lee
Este es el hecho que echa abajo casi cualquier tabla de monedas. Un símbolo no es una propiedad de la moneda: es una propiedad de la moneda y del lector a la vez. En solo trece variantes, 60 de las 178 monedas —alrededor de un tercio— se escriben de más de una manera.
El dólar australiano es el caso más claro, con seis grafías distintas: A$, $, AUD, AU$, $AU y «$ AU». El dólar estadounidense tiene cinco y el canadiense cuatro. Ni siquiera el euro es universal: es € en casi todas partes, pero el inglés de Australia y el español de México lo escriben con el código EUR a secas, porque allí es una moneda extranjera a la que conviene ponerle nombre.
CLDR publica en realidad dos símbolos por moneda justamente por esto. Hay una forma corta —lo mínimo que necesita un lector local, que para el dólar australiano en Australia es simplemente $— y una forma inequívoca que añade el prefijo necesario para no confundirlo con el dólar de otro. Las dos columnas están arriba. La corta sirve dentro de un precio en una página donde la moneda ya se sobreentiende; la larga, en una lista donde no.
Un detalle que conviene saber si alguna vez comparas símbolos como cadenas: el yen no es el mismo carácter en todas partes. Fuera de Japón es U+00A5, el signo de yen. En japonés es U+FFE5, el signo de yen de ancho completo: otro punto de código de aspecto casi idéntico. Una comparación byte a byte del «símbolo del yen» fallará entre esas dos variantes, y no hay recorte de espacios que lo arregle.
Los símbolos chocan, y muchas veces no existen
En inglés, el símbolo corto $ vale para 29 monedas distintas. No solo el dólar estadounidense, el australiano y el canadiense, sino también los de Argentina, Bahamas, Barbados, Belice, Bermudas, Brunéi, Chile, Colombia, Cuba, Fiyi, Guyana, Hong Kong, Jamaica, Liberia, México, Namibia, Nueva Zelanda, Singapur, las Islas Salomón, Surinam, Taiwán, Trinidad y Uruguay, más el dólar del Caribe Oriental y el de las Islas Caimán.
Y no es el único. El signo de libra vale para seis monedas, «kr» para las coronas danesa, islandesa, noruega y sueca, «Rs» para las rupias de Sri Lanka, Mauricio, Nepal y Pakistán, ¥ para el yuan chino y el yen japonés a la vez, y ₩ para las dos coreas. Un símbolo, por tanto, nunca sirve como identificador. El código de tres letras sí, y para eso existe la norma ISO 4217.
La otra mitad de esto es más silenciosa: 78 de las 178 monedas no tienen símbolo alguno en inglés. CLDR escribe simplemente el código, porque no hay ninguna marca distintiva de uso común. Si alguna vez has hecho un desplegable que muestra un símbolo junto a cada moneda, cerca del cuarenta por ciento de tus filas mostraban el código haciéndolo pasar por símbolo. Esta página los enumera en lugar de disimular el hueco.
No todas las monedas tienen dos decimales
Dos decimales es lo habitual y está lejos de ser universal. De los 178 códigos, ISO da dos decimales a 139, ninguno a 17, tres a siete y cuatro a dos. El yen japonés, el won surcoreano y la corona islandesa no tienen subdivisión, así que una cantidad en yenes con coma decimal está sencillamente mal. Los dinares de Bahréin, Irak, Jordania, Kuwait, Libia, Omán y Túnez se dividen en mil, de modo que un precio kuwaití lleva tres decimales. La unidad de fomento chilena y el índice uruguayo llevan cuatro.
Cualquier sistema que guarde dinero en una columna fija de dos decimales está equivocado por los dos extremos: no puede representar con exactitud un dinar kuwaití e invita a un medio yen que no puede existir. La solución es guardar unidades menores como entero junto con el código, y la columna de decimales es el número que hace falta para ello.
Hay una complicación más sutil, y esta página la muestra en vez de tomar partido. ISO y Unicode discrepan sobre los decimales de dieciséis monedas. Todas las discrepancias tienen la misma forma —Unicode dice cero donde ISO dice dos o tres— y una sola causa: la subdivisión existe por ley, pero la inflación la ha dejado sin valor y ya nadie la escribe. El caso más rotundo es el dinar iraquí, dividido legalmente en mil fils que ya no circulan. ISO acierta sobre la ley y Unicode sobre la práctica, y cuál quieres depende de si estás liquidando un contrato o imprimiendo un precio.
Límites honestos
Esto es una instantánea de una lista que se mueve. El archivo de ISO del que se construyó lleva su propia fecha de publicación, y los códigos cambian cuando un país redenomina su moneda o entra en una unión monetaria. Aquí no se descarga nada en tiempo de ejecución, así que un cambio posterior a la construcción de la página no se refleja; el generador está en el repositorio y regenerar es un solo comando.
Las dos fuentes también discrepan sobre la pertenencia, no solo sobre los decimales. La propia lista de códigos de Unicode tiene 162 entradas donde la de ISO tiene 178. Los 22 códigos que omite son sobre todo fondos, metales preciosos y códigos de prueba: oro, plata, paladio, las unidades de cuenta europeas y el propio XXX. Conviene saberlo: Unicode acepta todos esos códigos si se los pasas explícitamente, simplemente no los enumera. La lista de valores válidos de un entorno y el conjunto de valores que acepta son conjuntos distintos.
En sentido contrario, Unicode todavía arrastra seis códigos que ISO ha retirado, entre ellos la kuna croata y el florín antillano, porque el software tiene que seguir dando formato a cantidades históricas después de que una moneda muera. Aquí no están, porque esta es la norma vigente, pero si tu código los recibe de CLDR ya sabes por qué.
Por último, esta página no tiene tipos de cambio ni los tendrá. Un tipo es una dependencia externa viva que habría que descargar, cachear y pagar, y un tipo desactualizado es peor que ninguno. Todo lo que hay aquí es un dato que solo cambia cuando lo dice un organismo de normalización.
¿Por qué es gratis?
Porque es una tabla y un buscador. El conjunto de datos está en la página que ya has cargado, todo se ejecuta en tu navegador y nada de lo que escribes sale de ahí: no hay servidor de por medio para consultar un código de moneda.
Así que no hay cuenta, ni registro, ni nada reservado. El generador que construye esto desde la lista publicada de ISO 4217 y desde Unicode CLDR está en el repositorio junto a la página, con las 1.006 comprobaciones que verifican los códigos, los decimales, las colisiones de símbolos y la variación entre variantes, incluidos los controles negativos que impiden que esas pruebas pasen por el motivo equivocado.