Formatting a Decimal Number to 2 Decimal Places in Java or JSP

I was looking around for the class to format a number to 2 decimal places while I was coding Java, or specifically JSP, and I found it.

First, you need to import the DecimalFormat class, so have this line at the top of your Java file:

import java.text.DecimalFormat;

Or if you’re running JSP:

<%@page import="java.text.DecimalFormat" %>

And here’s the actual code that does the magic:

double price = 10.59;
DecimalFormat priceFormatter = new DecimalFormat("$#0.00");
return priceFormatter.format(price);

That’s all there is to it! Simply change the Formatting string “$#0.00” to anything you wish. The pound (#) sign simply means there can be optional digits there. The two zero’s (0) to the right of the decimal place means that it has only 2 decimal places, and will be replaced by 0s if you don’t have digits there. Te $ sign right at the start is something that I put in, because I wanted to display my prices in dollars ($).

So for example, you can also have the formatting string as “#0.00 seconds more” and it’ll show “2343.36 seconds more”.

2 responses to “Formatting a Decimal Number to 2 Decimal Places in Java or JSP”

  1. Hi Sir,
    I want to format a number in JSP
    Ex: if i have 10000 it should be displayed with number format as 10,000 and if its 1000000 it should be seperated by commas(,) as 1,00,000
    Pl mail me as soon as possible

  2. To properly format a number with the comma separator (usually for thousands like you’ve mentioned), try this:

    System.out.printf( “%,.2f”, 12345678.9 );

    It returns 12,345,678.90

Leave a Reply

Your email address will not be published. Required fields are marked *