Também disponível em: English · Español · Français · العربية
Símbolos de moedas
As 178 moedas com os seus símbolos, códigos e casas decimais, e uma explicação honesta de porque o símbolo é a parte menos fiável.
O que são os símbolos de moeda
Um símbolo de moeda é a marca que se escreve junto a um valor: $, €, £, ¥. Toda a gente sabe o que são, e quase todas as tabelas de símbolos que há na web aparecem sob o rótulo «ISO 4217». Essa atribuição é falsa, e de um modo interessante: a norma ISO 4217 não define um único símbolo.
É mantida pela SIX Financial Information por conta da ISO, e a lista publicada tem exactamente cinco campos por entrada: nome do país, nome da moeda, código alfabético de três letras, código numérico de três algarismos e número de unidades menores. Não há coluna de símbolo. Verificamos isto no gerador em vez de o dar como certo, portanto se uma edição futura a acrescentar, a compilação falha em vez de a página ficar calada e errada.
Então de onde vêm os símbolos? Do Unicode CLDR, os mesmos dados que o seu sistema operativo e o seu navegador usam para formatar dinheiro. É outro tipo de autoridade a responder a outra pergunta: a ISO diz como se chama uma moeda e como se divide; o CLDR diz como se escreve num sítio concreto. Esta página traz as duas coisas lado a lado, que é a única forma honesta de as apresentar.
A tabela cobre os 178 códigos da lista em vigor da ISO, incluindo os que se esquecem: o ouro é XAU, o direito de saque especial do FMI é XDR e XXX é o código que significa formalmente «nenhuma moeda».
Como usar esta página
- Procure uma moeda por aquilo que souber dela. A caixa encontra por nome, código de três letras, código numérico e símbolo. As correspondências exactas de código vêm primeiro, e isso importa mais do que parece: caso contrário, procurar «eur» devolveria o euro WIR e quatro unidades de conta europeias à frente do euro.
- Mude a variante para ver o símbolo mexer-se. O selector muda para que leitor os símbolos estão escritos. Repare no dólar australiano enquanto o faz: é A$ para um americano, um simples $ para um australiano, AU$ para um canadiano e «$ AU» em francês. A mesma moeda, seis grafias diferentes em treze variantes.
- Clique em qualquer código ou símbolo para o copiar. Tudo o que está na tabela é um botão de cópia. Ao usá-lo não é enviado nada: o conjunto de dados já está no seu navegador.
O símbolo depende de quem o lê
É este o facto que deita abaixo quase todas as tabelas de moedas. Um símbolo não é uma propriedade da moeda: é uma propriedade da moeda e do leitor em conjunto. Em apenas treze variantes, 60 das 178 moedas — cerca de um terço — escrevem-se de mais do que uma maneira.
O dólar australiano é o caso mais claro, com seis grafias distintas: A$, $, AUD, AU$, $AU e «$ AU». O dólar americano tem cinco e o canadiano quatro. Nem sequer o euro é universal: é € na maior parte dos sítios, mas o inglês da Austrália e o espanhol do México escrevem-no com o código EUR à seca, porque ali é uma moeda estrangeira que ganha em ser soletrada.
O CLDR publica na verdade dois símbolos por moeda precisamente por isto. Há uma forma curta — o mínimo de que um leitor local precisa, que para o dólar australiano na Austrália é simplesmente $ — e uma forma inequívoca que acrescenta o prefixo necessário para não o confundir com o dólar de outrem. As duas colunas estão acima. A curta serve dentro de um preço numa página onde a moeda já se subentende; a longa, numa lista onde não.
Um pormenor que convém saber se alguma vez comparar símbolos como cadeias de texto: o iene não é o mesmo carácter em toda a parte. Fora do Japão é U+00A5, o sinal de iene. Em japonês é U+FFE5, o sinal de iene de largura completa, outro ponto de código de aspecto quase idêntico. Uma comparação byte a byte do «símbolo do iene» falha entre essas duas variantes, e não há corte de espaços que resolva.
Os símbolos colidem, e muitas vezes não existem
Em inglês, o símbolo curto $ serve para 29 moedas diferentes. Não só o dólar americano, o australiano e o canadiano, mas também os da Argentina, Baamas, Barbados, Belize, Bermudas, Brunei, Chile, Colômbia, Cuba, Fiji, Guiana, Hong Kong, Jamaica, Libéria, México, Namíbia, Nova Zelândia, Singapura, Ilhas Salomão, Suriname, Taiwan, Trindade e Uruguai, mais o dólar das Caraíbas Orientais e o das Ilhas Caimão.
E não é o único. O sinal de libra serve para seis moedas, «kr» para as coroas dinamarquesa, islandesa, norueguesa e sueca, «Rs» para as rupias do Sri Lanka, Maurícia, Nepal e Paquistão, ¥ para o yuan chinês e o iene japonês ao mesmo tempo, e ₩ para as duas Coreias. Um símbolo, portanto, nunca serve como identificador. O código de três letras serve, e é para isso que a norma ISO 4217 existe.
A outra metade disto é mais silenciosa: 78 das 178 moedas não têm símbolo nenhum em inglês. O CLDR escreve simplesmente o código, porque não há marca distintiva de uso corrente. Se alguma vez fez uma lista pendente que mostra um símbolo ao lado de cada moeda, perto de quarenta por cento das suas linhas mostravam o código a fingir que era um símbolo. Esta página enumera-os em vez de disfarçar a lacuna.
Nem todas as moedas têm duas casas decimais
Duas casas é o habitual e está longe de ser universal. Dos 178 códigos, a ISO dá duas casas a 139, nenhuma a 17, três a sete e quatro a duas. O iene japonês, o won sul-coreano e a coroa islandesa não têm subdivisão, portanto um valor em ienes com vírgula decimal está simplesmente errado. Os dinares do Barém, Iraque, Jordânia, Kuwait, Líbia, Omã e Tunísia dividem-se em mil, pelo que um preço kuwaitiano leva três casas. A unidade de fomento chilena e o índice uruguaio levam quatro.
Qualquer sistema que guarde dinheiro numa coluna fixa de duas casas está errado dos dois lados: não consegue representar com exactidão um dinar kuwaitiano e convida a meio iene que não pode existir. A solução é guardar unidades menores como número inteiro juntamente com o código, e a coluna das casas decimais é o número de que precisa para isso.
Há uma complicação mais subtil, e esta página mostra-a em vez de tomar partido. A ISO e o Unicode divergem sobre as casas decimais de dezasseis moedas. Todas as divergências têm a mesma forma — o Unicode diz zero onde a ISO diz duas ou três — e uma só causa: a subdivisão existe por lei, mas a inflação deixou-a sem valor e já ninguém a escreve. O caso mais nítido é o dinar iraquiano, dividido legalmente em mil fils que já não circulam. A ISO acerta quanto à lei e o Unicode quanto à prática, e qual deles quer depende de estar a liquidar um contrato ou a imprimir um preço.
Limites honestos
Isto é um instantâneo de uma lista que se mexe. O ficheiro da ISO de onde foi construído traz a sua própria data de publicação, e os códigos mudam quando um país redenomina a moeda ou entra numa união monetária. Aqui nada é descarregado em tempo de execução, portanto uma alteração posterior à construção da página não fica reflectida; o gerador está no repositório e regenerar é um único comando.
As duas fontes também divergem quanto à pertença e não só quanto às casas decimais. A própria lista de códigos do Unicode tem 162 entradas onde a da ISO tem 178. Os 22 códigos que omite são sobretudo fundos, metais preciosos e códigos de teste: ouro, prata, paládio, as unidades de conta europeias e o próprio XXX. Vale a pena saber: o Unicode aceita todos esses códigos se lhos passar explicitamente, apenas não os enumera. A lista de valores válidos de um ambiente e o conjunto de valores que ele aceita são conjuntos diferentes.
No sentido inverso, o Unicode ainda carrega seis códigos que a ISO retirou, entre eles a kuna croata e o florim das Antilhas, porque o software tem de continuar a formatar valores históricos depois de uma moeda morrer. Aqui não estão, porque esta é a norma em vigor, mas se o seu código os recebe do CLDR já sabe porquê.
Por fim, esta página não tem taxas de câmbio nem virá a ter. Uma taxa é uma dependência externa viva que teria de ser descarregada, guardada em cache e paga, e uma taxa desactualizada é pior do que taxa nenhuma. Tudo o que aqui está é um facto que só muda quando um organismo de normalização o disser.
Porque é grátis
Porque é uma tabela e uma caixa de procura. O conjunto de dados está na página que já carregou, tudo corre no seu navegador e nada do que escreve sai dali: não há servidor pelo meio para consultar um código de moeda.
Portanto não há conta, nem registo, nem nada guardado atrás de um. O gerador que constrói isto a partir da lista publicada da ISO 4217 e do Unicode CLDR está no repositório ao lado da página, com as 1006 verificações que conferem os códigos, as casas decimais, as colisões de símbolos e a variação entre variantes, incluindo os controlos negativos que impedem esses testes de passar pela razão errada.