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  
posted @ 2014-03-27 22:25  testglen  阅读(405)  评论(0编辑  收藏  举报