/******************************************************************************
* Example of formatting number using DecimalFormat class
* You can format using various patterns                    
******************************************************************************/
import java.text.DecimalFormat;             

public class DecimalFormat1 
{
    public static void main(String[] arguments) 
    {
        //Example of formatting a number into a String

        double num  = 14250.5679;                                               
        DecimalFormat pattern  = new DecimalFormat();                   //create a std. decimalFormat obj
        String str  = pattern.format(num);                              //call the format method
        System.out.println(num + "\t formatted: " + str);               //14.250.568     3 decimal places  
        System.out.println();

        float num1 = 14250.567f;        
        DecimalFormat pattern1 = new DecimalFormat("$ ##,###,##0.00");  //create decimalFormat with pattern
        String str1 = pattern1.format(num1);                            
        System.out.println(num1 + "\t formatted: " + str1);             //$ 14,250.57   
        System.out.println();

        long num2 = -1234;
        DecimalFormat pattern2 = new DecimalFormat("$000,000.00");      //leading zeros
        String str2 = pattern2.format(num2);            
        System.out.println(num2 + "\t\t formatted: " + str2);           //-$001,234.00   
        System.out.println();

        double num3 = -123.5;
        DecimalFormat pattern3 = new DecimalFormat("$##0.00;($##0.00)");
        String str3 = pattern3.format(num3);            
        System.out.println(num3 + "\t\t formatted: " + str3);           //($123.00)   
        System.out.println();

        double num4 = .25678;
        DecimalFormat pattern4 = new DecimalFormat("#.00%");            //multiply by 100 and use %
        String str4 = pattern4.format(num4);                
        System.out.println(num4 + "\t\t formatted: " + str4);           //25.68%    
        System.out.println();

        //Example of parsing a String into a Number
        //Number is the superclass of wrapper classes, Integer, Double, etc. 

        String str5 = "$ -123.45 ";
        DecimalFormat pattern5 = new DecimalFormat("$ #,##0.00;$ -#,##0.00");
        Number num5 = 0;
        try {
            num5        = pattern5.parse(str5);                         //call the format method
            double num6 = (Double) num5 * 10; 
        }
        catch(Exception e) {
            System.out.println("Cannot Parse " + str5 + " " + e );
        }
        System.out.println(str5 + "\t parsed...: " + num5);             //123.45    
        System.out.println();
     }
}