Outputting Currencies

Outputting Currencies

How to print out a Currency in Java is an often overlooked topic. How should Currency be printed out in an international, standardized way?
The java.text.NumberFormat class is used for outputting numbers. It handles decimal points and inserting commas. For example:


It also handles internationalization. Many locales use a space or a dot to separate the thousands and a comma to separate the decimals. For example in Hungary, the above would be:

 10000.1273333 --> 10 000,13.

However, the NumberFormat class can do more. It has a Currency instance that knows what symbols to use when outputting a currency and how to format the number. For example, 50000.25 in the United States would be:


In Hungary, it would be:

 Ft50 000,250.

The easiest way to print a value is to use the default Locale:

 Locale loc = Locale.getDefault();NumberFormat nf = NumberFormat.getCurrencyInstance(loc);System.out.println(nf.format(50444.423));

Also, you can easily print out all the Currency formats in the available Locales:

 import java.text.NumberFormat;import java.util.Locale;public class Currency {static public void main(String[] strs) {Locale[] locs = NumberFormat.getAvailableLocales();for(int i=0; i


Share the Post: