How to use DecimalFormat?

By | September 29, 2021
How to use DecimalFormat?


NumberFormat classes, including DecimalFormat, are packaged in the java.text package in Java. These are used to print information in a particular format. It is useful to format the numbers to print currencies or long values that can be otherwise confusing.

How to use Java DecimalFormat

In a simple example below, we have defined a number, which we will print without and with formatting, so that you can see the difference:

NumberFormat nfm = new DecimalFormat("#,#,###.000");
double amount = 134563232.67;
System.out.println("Without formatting: " + amount);
System.out.println("With formatting: " + nfm.format(amount));

The output will be:

Without formatting: 1.3456323267E8
With formatting: 134,563,232.670

Note that the second number is more readable.

The method format can be applied to long and float as well:

nfm = new DecimalFormat("##,###.00");
System.out.println("Without formatting: " + (float)1111.232);
System.out.println("With formatting: " +  nfm.format((float)1111.232));

Setting group size will change the grouping of integers in the parts:


This will create groups of 4 instead of 3: 1,3456,3232.67


We can also get the currency of a particular Locale and print that:

nfm = new DecimalFormat("¤##,###.00");
System.out.println("With formatting: " + nfm.format(amount));

The output will be: “With formatting: EUR134,563,232.67”. You can get and print the symbol of the currency using the getSymbol() method:


To print the resulting amount with the symbol, you should set the NumberFormat object (nfm) accordingly:

nfm = DecimalFormat.getCurrencyInstance(Locale.ITALY);
System.out.println("With symbol: " + nfm.format(amount));


We have seen how to use DecimalFormat to print an amount in any format that we want. We can also get the currency of a particular locale and prefix it on the number that we are formatting. For more methods and formats, check the Java documents for DecimalFormat.

People are also reading: 

Leave a Reply

Your email address will not be published.