programa - Formato de moneda USD en Java
programa para convertir monedas en java (3)
En Java, ¿cómo puedo convertir de manera eficiente flotantes como 1234.56
y BigDecimals similares en cadenas como $1,234.56
Estoy buscando lo siguiente:
Cadena 12345.67
convierte en Cadena $12,345.67
También estoy buscando hacer esto con Float
y BigDecimal
también.
Aquí está el código de acuerdo a su entrada y salida:
La salida del programa es $ 12,345.67 tanto para BigDecimal como para número y también funciona para flotar.
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
public class test {
public static void main(String[] args) {
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setGroupingSeparator('','');
String pattern = "$#,##0.###";
DecimalFormat decimalFormat = new DecimalFormat(pattern, symbols);
BigDecimal bigDecimal = new BigDecimal("12345.67");
String bigDecimalConvertedValue = decimalFormat.format(bigDecimal);
String convertedValue = decimalFormat.format(12345.67);
System.out.println(bigDecimalConvertedValue);
System.out.println(convertedValue);
}
}
Hay una expresión idiomática que funciona bien:
import java.text.NumberFormat;
// Get a currency formatter for the current locale.
NumberFormat fmt = NumberFormat.getCurrencyInstance();
System.out.println(fmt.format(120.00));
Si su ubicación actual está en los EE. UU., La impresión imprimirá $ 120.00
Otro ejemplo:
import java.text.NumberFormat;
import java.util.Locale;
Locale locale = new Locale("en", "UK");
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
System.out.println(fmt.format(120.00));
Esto imprimirá: £ 120.00
DecimalFormat moneyFormat = new DecimalFormat("$0.00");
System.out.println(moneyFormat.format(1234.56));