¿Cómo obtengo NumberFormat.getCurrencyInstance()
para imprimir valores de moneda negativos en USD con un signo menos?Formato de cantidad negativa de USD con un signo menos, sin corchetes (Java)
Respuesta
Aquí está uno siempre termino usando ya sea en una clase Java oa través de la FMT: Etiqueta jstl formatNumber:
DecimalFormat format = new DecimalFormat("$#,##0.00;$-#,##0.00");
String formatted = format.format(15.5);
siempre produce al menos un $ 0,00 y es consistente cuando se muestre. También incluye miles de separadores donde sea necesario. Puede mover el signo menos delante del signo de dólar si ese es su requisito.
Probablemente sea mejor crear su propio DecimalFormat
si desea un formato específico en lugar de confiar en el predeterminado.
Editar: Probablemente se podría también emitir el resultado de NumberFormat.getCurrencyInstance() para DecimalFormat
y ajustarlo a sus preferencias.
Requiere un pequeño ajuste del DecimalFormat devuelto por NumberFormat.getCurrencyInstance()
para hacerlo de forma independiente de la configuración regional. Esto es lo que hice (probado en Android):
DecimalFormat formatter = (DecimalFormat)NumberFormat.getCurrencyInstance();
String symbol = formatter.getCurrency().getSymbol();
formatter.setNegativePrefix(symbol+"-"); // or "-"+symbol if that's what you need
formatter.setNegativeSuffix("");
IIRC, Currency.getSymbol()
no puede devolver un valor para todos los locales para todos los sistemas, pero debería funcionar para los más grandes (y yo creo que tiene un retorno razonable sobre por sí solo, por lo que no debería tener que hacer nada)
Probar:
NumberFormat.getCurrencyInstance(Locale.CANADA);
NumberFormat.getCurrencyInstance(Locale.UK);
- 1. USD formato de moneda en Java
- 2. Java: ¿Imprimir LinkedList sin corchetes?
- 3. Qt Convertir cadena hexadecimal negativa al entero con signo
- 4. menos unario y firmado-a-sin signo de conversión
- 5. Números sin signo versus números con signo
- 6. Obtenga la variante con signo/sin signo de un parámetro de plantilla entera sin rasgos explícitos
- 7. Número de entrada de Android con signo más y menos
- 8. Conversión de caracteres sin signo a entero con signo
- 9. Extensión de signo con largo largo sin signo
- 10. ¿Cómo convierto un valor numérico de cadena con un signo de dólar a BigDecimal en Java?
- 11. ¿Atraviesa con seguridad un iterador sin formato en Java?
- 12. sin signo de longitud con valor negativo
- 13. ¿Qué sucede cuando resta un entero sin signo de un entero con signo en C++?
- 14. Primitivas negativas sin signo?
- 15. División firmada con el numerador sin signo
- 16. Función C: asignar variable sin signo a una función con un parámetro con signo
- 17. Usando el signo menos en C#
- 18. ¿Cuál es el equivalente de largo sin signo en Java
- 19. formato a un doble valor como moneda, pero sin el signo de moneda (C#)
- 20. Cómo modelar una cantidad de dinero en Java
- 21. Formato de doble a al menos un dígito significativo en Java/Android
- 22. '-%>' (signo menos) al final de una secuencia de ERb
- 23. Por qué el resultado de char sin signo << char sin signo no está sin signo char
- 24. Codificando un signo de libra en un URI de Java
- 25. jQuery desplazamiento para anclar (cantidad de ajuste menos de píxeles)
- 26. Diferencia entre int sin signo y sin signo en C++
- 27. C: comportamiento de operador unitario negativo con operandos sin signo
- 28. ¿La mejor manera de convertir un entero con signo en un largo sin firmar?
- 29. Imprimir matriz sin corchetes y comas
- 30. ¿Por qué el compilador de Java se queja de utilizar foreach con un tipo sin formato?
probablemente usted está bien, pero mi aplicación debe ser capaz de f moneda de ormat en locales de mayo. ¿No sería muy difícil implementar el formateo para todos esos entornos? –