How to format Currency in Java
import
java.text.NumberFormat;
import java.util.Locale;
/**
* How to format Number to different currency in Java. Following Java
program * will show you, how you
can display double value in different currency e.g.
* USD, GBP and JPY. This example show price in multiple currency. * *
@author */public
class Test { public static
void main(String args[]) {
double
price = 100.25;
showPriceInUSD(price, getExchangeRate("USD"));
showPriceInGBP(price, getExchangeRate("GBP"));
showPriceInJPY(price, getExchangeRate("JPY"));
} /**
* Display price in US Dollar currency
* * @param price
* @param rate
*/public static
void showPriceInUSD(double price, double rate) {
double
priceInUSD = price * rate; NumberFormat currencyFormat =
NumberFormat.getCurrencyInstance(Locale.US);
System.out.printf("Price in
USD : %s %n", currencyFormat.format(priceInUSD)); } /**
* Display prince in British Pound
* * @param price
* @param rate
*/public static
void showPriceInGBP(double price, double rate) {
double
princeInGBP = price * rate; NumberFormat GBP = NumberFormat.getCurrencyInstance(Locale.UK); System.out.printf("Price
in GBP : %s %n", GBP.format(princeInGBP)); } /**
* Display prince in Japanese Yen
* * @param price
* @param rate
*/public static
void showPriceInJPY(double price, double rate) {
double
princeInJPY = price * rate; NumberFormat currency = NumberFormat.getCurrencyInstance(Locale.JAPAN);
System.out.printf("Price in
JPY : %s %n", currency.format(princeInJPY)); } /**
* @return FX exchange rate for
USD * @param currency
*/public
static double getExchangeRate(String
currency) { switch (currency) {
case "USD":
return 1;
case
"JPY":
return 102.53;
case
"GBP":
return 0.60;
case
"EURO":
return 0.73;
default:
throw new IllegalArgumentException(String.format("No
rates available for currency %s %n", currency)); } } } Output
Price in USD : $100.25 Price in GBP :
£60.15