At times you want to output the numeric values in specific format, for example, you may want to display monetary value with two decimal points, or scientific data with five decimal point places or an exponent. You can use NumberFormat class from java.text package for this. Here is some sample code which has been checked under JDK1.2:
import java.text.*;public class NumberFormatter { public static void main(String args[]) { double d = 9876543.20; NumberFormat leadingZero = new DecimalFormat("00,00,000,000.00"); // This will print as 0,009,876,543.20 // See Leading Zeros System.out.println(leadingZero.format(d)); NumberFormat noZero = new DecimalFormat("##,##,###,##0.0#"); // This will print as 9,876,543.2 // Removed leading and trailing zeroes.. System.out.println(noZero.format(d)); d = 123450000.00; NumberFormat exponent = new DecimalFormat("####0E0"); // This will print as 1234.5E5 // In exponent form System.out.println(exponent.format(d)); } }
There are different Symbols you can use, some of them are:
Symbol Meaning
0 a digit, (leading zero shows as zero)
# a digit, (leading zero shows as absent)
. used for decimal separator
, used for grouping separator.
E separates mantissa and exponent
For detailed API visit http://java.sun.com/products/jdk/1.2/docs/api/java/text/DecimalFormat.html