separador programa pesos para monedas moneda miles formato dolares convertir codigo algoritmo java string currency

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));