Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Java
Expertise: Intermediate
Oct 11, 2002

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:
 
10000.1273333
-->
10,000.13

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:
 
$50,000.25.

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<locs.length; i++) {
NumberFormat nf = NumberFormat.
getCurrencyInstance(locs[i]);
System.err.print(locs[i].
getLanguage());
System.err.print("_");
System.err.print(locs[i].
getCountry());
System.err.print("_");
System.err.print(locs[i].
getVariant());
System.err.print(" ");
System.err.println(nf.
format(50444.423));
}
}

}
Ramneek Handa
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date