studio numberformat moneda formato java

numberformat - formato moneda java



Java: símbolo de moneda basado en ISO 4217 moneda cod. (4)

El uso de la enumeración limitada de Locale solo satisface los símbolos occidentalizados. Si desea ser un poco más global, intente usar los Locales proporcionados por:

Locale[] locales = Locale.getAvailableLocales();

El uso de Locales de esta lista dio símbolos en lugar de TLA de manera bastante consistente.

El siguiente programa imprime el símbolo de moneda dado el código de moneda ISO 4217.

import java.util.*; public class Currency{ public static void main(String args[]) { Currency myInstance = Currency.getInstance(args[0]); System.out.println(myInstance.getSymbol()); } }

Problema : funciona bien cuando se introduce la cadena USD. Para otras entradas como EUR solo devuelve el Código de moneda.

Ejemplo de entrada, salida del programa:

input: java Currency USD output: $ input: java Currency EUR output: EUR -> I expect the symbol of Euro here


Para mí, su código incluso en el primer caso devuelve USD. Parece que la moneda depende en gran medida de la versión JRE (1.6 para mí). Le recomiendo que escriba su propio CUR para el módulo de conversión de símbolos; será mucho más fácil que intentar usar este.


Si alguien lo necesita al revés (por ejemplo, € -> EUR)

String currency = €; String currencyCode = ""; for (Currency c : Currency.getAvailableCurrencies()) { if (c.getSymbol().equals(currency)) { currencyCode = c.toString(); } }


Currency.getSymbol() devuelve el símbolo de moneda relativo a la configuración regional predeterminada.

Obtiene el símbolo de esta moneda para la configuración regional predeterminada. Por ejemplo, para el dólar estadounidense, el símbolo es "$" si la configuración regional predeterminada es EE.UU., mientras que para otras configuraciones regionales puede ser "US$" . Si no se puede determinar ningún símbolo, se devuelve el código de moneda ISO 4217.

Use Currency.getSymbol(Locale locale) si quiere el símbolo para una locale diferente.

System.out.println( Currency.getInstance("USD").getSymbol(Locale.US) ); // prints $ System.out.println( Currency.getInstance("USD").getSymbol(Locale.FRANCE) ); // prints USD System.out.println( Currency.getInstance("EUR").getSymbol(Locale.US) ); // prints EUR System.out.println( Currency.getInstance("EUR").getSymbol(Locale.FRANCE) ); // prints €

( ver también en ideone.com ).