Formato de moneda en Java

Rashmi Patidar 12 octubre 2023
  1. Convierta la moneda usando funciones lógicas en Java
  2. Convertir moneda usando la clase NumberFormat en Java
Formato de moneda en Java

A continuación se muestran algunas formas en las que podemos convertir una moneda a los valores deseados en Java.

Convierta la moneda usando funciones lógicas en Java

public class CurrencyConversion {
  public static void main(String[] args) {
    double currency_value = 10.9897;
    float epsilon = 0.004f;
    if (Math.abs(Math.round(currency_value) - currency_value) < epsilon) {
      System.out.printf("%10.0f", currency_value);
    } else {
      System.out.printf("%10.2f", currency_value);
    }
  }
}

En el código anterior de CurrencyConversion, hay una variable currency_value, que contiene valores de moneda en formato decimal. El epsilon es otra variable que tiene un valor diferente. El valor puede ser cualquier número flotante que realice algunas operaciones lógicas sobre su diferencia. Se define la lógica de la sentencia if que toma el valor absoluto de la diferencia entre el número redondeado y el real. El valor absoluto se compara con el valor épsilon. El programa utiliza la función Math.abs() que convierte la diferencia real del valor decimal en cero o mayor que cero.

Según la salida de la declaración condicional, se imprime en el formato 10.0f o 10.2f. El especificador de dos formatos dado dice, una parte integral como 10, lo que significa que la cadena completa contiene diez caracteres. Y la parte fraccionaria especifica el formato hasta 2 decimales.

En el siguiente registro de la consola, imprime un valor absoluto convertido hasta 2 lugares decimales.

10.99  //10.9897
10	   //10
10	   //10.0008

En el primer caso, cuando el valor de la moneda es 10.9897, se redondea a 10.99. Además, cuando el valor de la moneda se cambia a 10, la salida aún devuelve 10, ya que nada se redondea en la moneda de entrada. Y cuando el valor de la moneda se cambia a 10.0008, la cantidad se redondea al valor de 10.

Convertir moneda usando la clase NumberFormat en Java

import java.text.NumberFormat;

public class CurrencyConversion {
  public static void main(String[] args) {
    double money = 100.1;
    NumberFormat formatter = NumberFormat.getCurrencyInstance();
    String moneyString = formatter.format(money);
    System.out.println(moneyString);
  }
}

El bloque de código anterior utiliza la clase NumberFormat que llama a un método estático la función getCurrencyInstance. El método devuelve el formato de moneda del formato en la configuración regional predeterminada. También se necesita un valor de configuración regional para especificar una región. Y las instancias de moneda pueden estar en el formato Rupees Dollar según el área o región definida. Ahora la instancia del formateador se usa para llamar a un método de formato. El método format toma un parámetro doble money y devuelve un valor de String. La función puede lanzar ArithmeticException cuando el redondeo ocurre incorrectamente.

El código anterior crea la siguiente salida.

Rs.100.10

Pero puede ser diferente cuando el valor de la configuración regional es diferente. La salida puede ser cuando el valor de la configuración regional es Locale.CHINA. O devuelve $ cuando Locale es Locale.CANADA.

Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Artículo relacionado - Java String