studio percent numero number money moneda formato java android format currency

java - percent - Orden de símbolo de moneda de Android



number format android (1)

El comportamiento del método es correcto.

No todos los países esperan el símbolo de moneda antes de la cantidad.

Si siempre quiere que el formato de moneda coincida con una expectativa americanizada, deje la configuración regional como Locale.US . Si desea que la moneda se muestre de forma localizada, deje su implementación tal como está.

Vea esta breve guía (de Microsoft, nada menos):

Globalización paso a paso

Supongo que lo que intentas lograr es mostrar la moneda en un formato apropiado para su localidad. Si ese es el caso, simplemente haga coincidir la configuración regional con la moneda que está utilizando, antes de llamar al método.

Tenga en cuenta que el formato puede variar incluso en el mismo país. En Canadá, es razonablemente común ver a los angloparlantes usar el formato $ 50.00, mientras que los francocanadienses pueden usar 50,00 $.

También vea esta pregunta en UX:

https://ux.stackexchange.com/questions/22574/where-to-place-currency-symbol-when-localizing-and-what-to-do-with-odd-symbols

Me estoy poniendo en dispositivos con configuración regional no inglesa, las monedas inglesas tienen el siguiente formato:

1 $

Si tengo la configuración en inglés, obtengo moneda en euros como:

€ 1

Utilizando

format.setCurrency(Currency.getInstance(currency)); return format.format(amount);

Encontrado en la documentación:

http://developer.android.com/reference/java/util/Currency.html#getSymbol ()

Devuelve el símbolo de moneda localizada para esta moneda en la configuración regional. Es decir, dado "USD" y Locale.US, obtendría "$", pero dado "USD" y un lugar fuera de EE. UU., Obtendría "US $".

Si la configuración regional solo especifica un idioma en lugar de un idioma y un país (como Locale.JAPANESE o {new Locale ("en", "")} en lugar de Locale.JAPAN o {new Locale ("en", "US") )}), se devuelve el código de moneda ISO 4217.

Si no hay un símbolo de moneda específico de la configuración regional, se devuelve el código de moneda ISO 4217.

No es el mismo método, pero probablemente esté relacionado. ¿Por qué hace la diferencia la configuración regional de mi dispositivo para el orden de símbolos en la moneda? 1 $ es incorrecto sin importar la configuración regional que estoy usando.

¿Hay alguna manera de cambiar esto?