Tengo un valor almacenado en un DB que se correlaciona con una cantidad monetaria, digamos 10.0. También tengo acceso a la moneda/código de moneda. ¿Cómo puedo usar NumberFormat/DecimalFormat/(other?) Para formatear cuando no conozco la configuración regional? De acuerdo con los documentos, elegirá una configuración regional predeterminada que no funcionará con una moneda extranjera.Java: ¿es posible la asignación de moneda a la configuración regional?
Respuesta
El comportamiento correcto, en general, es formatear la cantidad en la configuración regional preferida del usuario, no en la configuración regional típica de la moneda. En el lado del cliente, tendrá la preferencia del usuario (Locale.getDefault()); Si está haciendo algo en el lado del servidor web, use Accept-Language o, preferiblemente, la configuración regional del contenido de la página para obtener una configuración regional adecuada.
El razonamiento es el siguiente: Un usuario Inglés-estadounidense entenderá € 10,000,000.15 pero no es el adecuado para la Alemania equivalente, € 10.000.000,15
La moneda en sí no contiene suficiente información para inferir una ubicación adecuada, de todos modos.
¿Qué pasa si el código de la moneda es EUR? Y, aunque le ha tomado una paliza, USD todavía se usa en todo el mundo. Inferir la configuración regional del código de moneda parece poco confiable. ¿Puede introducir una preferencia de usuario explícita para la configuración regional en su lugar?
La información que está buscando no es parte de la base de datos incorporada de moneda de Java, por lo que no hay una API para ella. Puede create your own table para los muchos casos que no son ambiguos.
Yo diría que si su base de datos está almacenando un valor de moneda, debería estar colgando en las unidades al mismo tiempo. Parece que estás haciendo eso ahora. ¿Puedes agregar la configuración regional a la base de datos al mismo tiempo? Podría ser una solución decente
JasonTrue es correcta, pero puede dar prioridad a la moneda de la configuración regional del NumberFormat:
NumberFormat numberFormat = NumberFormat.getCurrencyInstance(locale);
//the user may have selected a different currency than the default for their locale
Currency currency = Currency.getInstance("GBP");
numberFormat.setCurrency(currency);
numberFormat.format(amount);
Aquí está una manera de determinar la configuración regional del código de moneda
let locale = NSLocale(localeIdentifier: NSLocale.canonicalLocaleIdentifierFromString(NSLocale.localeIdentifierFromComponents([NSLocaleCurrencyCode: currencyCode])))
let formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
formatter.currencyCode = currencyCode
formatter.locale = locale
formatter.maximumFractionDigits = 2
formatter.stringFromNumber(number)
- 1. Configuración de la configuración regional de Java
- 2. Cómo formateo una moneda para una configuración regional en Java
- 3. La configuración regional no existe en Java
- 4. ¿Es posible crear su configuración regional personalizada?
- 5. ¿Falta la configuración regional en Java?
- 6. ¿La cultura en C# es equivalente a la configuración regional en Java?
- 7. Cambiar la configuración de idioma (configuración regional) para el dispositivo
- 8. cambiar la configuración regional de la fecha
- 9. Obtener la cadena de la configuración regional predeterminada mediante una cadena en la configuración regional específica
- 10. Java: el formato de flotación depende de la configuración regional
- 11. ¿Cómo validar una configuración regional en Java?
- 12. ¿Es posible sobrecargar la asignación de Python?
- 13. "atof" independiente de la configuración regional?
- 14. C# DateTime, ¿es segura la configuración regional de este método?
- 15. ¿Depende de la configuración regional SimpleDateFormat?
- 16. Formato de fecha Java para configuración regional
- 17. Cambiar la configuración regional predeterminada en Symfony2
- 18. Inicie la aplicación con la configuración regional específica
- 19. String.Format considere la configuración regional o no?
- 20. Grails cómo cambiar la configuración regional actual
- 21. Git GUI: cómo cambiar la configuración regional
- 22. ¡La asignación de la pila falla y la asignación del montón tiene éxito! ¿Es posible?
- 23. ¿Cómo obligo a Visual Studio 2008 a guardar archivos vcproj con la configuración regional correcta?
- 24. Código de configuración regional para hebreo/¿Referencia a otros códigos de configuración regional?
- 25. Cómo obtener el patrón de fecha de la zona horaria de la configuración regional en Java
- 26. Configuración regional en Android
- 27. Java String.Format con el símbolo de moneda
- 28. Obtenga el formato de moneda para un país que no tiene una configuración regional constante
- 29. ¿Cómo puedo modificar la configuración regional predeterminada en android?
- 30. Caracteres de índice específicos de configuración regional