Decimal Format

From Java Example Source Code

Jump to: navigation, search

Contents

[edit] Overview - Decimal Format

This Java example introduce decimal formatting.

[edit] Java Source Code

  • Package: com.sun.example
  • File: DecimalFormatDemo.java
package com.sun.example;
 
/* From http://java.sun.com/docs/books/tutorial/index.html */
 
/*
 * Copyright (c) 1995-1998 Sun Microsystems, Inc. All Rights Reserved.
 * 
 * Permission to use, copy, modify, and distribute this software and its
 * documentation for NON-COMMERCIAL purposes and without fee is hereby granted
 * provided that this copyright notice appears in all copies. Please refer to
 * the file "copyright.html" for further important copyright and licensing
 * information.
 * 
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
 * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
 * NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY
 * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
 * DERIVATIVES.
 */
 
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.NumberFormat;
import java.util.Locale;
 
public class DecimalFormatDemo {
 
    static public void customFormat(String pattern, double value) {
	DecimalFormat myFormatter = new DecimalFormat(pattern);
	String output = myFormatter.format(value);
	System.out.println(value + "  " + pattern + "  " + output);
    }
 
    static public void localizedFormat(String pattern, double value, Locale loc) {
	NumberFormat nf = NumberFormat.getNumberInstance(loc);
	DecimalFormat df = (DecimalFormat) nf;
	df.applyPattern(pattern);
	String output = df.format(value);
	System.out.println(pattern + "  " + output + "  " + loc.toString());
    }
 
    static public void main(String[] args) {
 
	customFormat("###,###.###", 123456.789);
	customFormat("###.##", 123456.789);
	customFormat("000000.000", 123.78);
	customFormat("$###,###.###", 12345.67);
	customFormat("\u00a5###,###.###", 12345.67);
 
	Locale currentLocale = new Locale("en", "US");
 
	DecimalFormatSymbols unusualSymbols = new DecimalFormatSymbols(currentLocale);
	unusualSymbols.setDecimalSeparator('|');
	unusualSymbols.setGroupingSeparator('^');
	String strange = "#,##0.###";
	DecimalFormat weirdFormatter = new DecimalFormat(strange, unusualSymbols);
	weirdFormatter.setGroupingSize(4);
	String bizarre = weirdFormatter.format(12345.678);
	System.out.println(bizarre);
 
	Locale[] locales = { new Locale("en", "US"), new Locale("de", "DE"), new Locale("fr", "FR") };
 
	for (int i = 0; i < locales.length; i++) {
	    localizedFormat("###,###.###", 123456.789, locales[i]);
	}
 
    }
}

[edit] What Result You Can Get

Run the program, you will get:


123456.789  ###,###.###  123,456.789
123456.789  ###.##  123456.79
123.78  000000.000  000123.780
12345.67  $###,###.###  $12,345.67
12345.67  ?###,###.###  ?12,345.67
1^2345|678
###,###.###  123,456.789  en_US
###,###.###  123.456,789  de_DE
###,###.###  123?456,789  fr_FR

[edit] Required External Library for this Java Example

Need nothing.


[edit] How to Run this Java Example Program

We recommend running this Java example program with Eclipse.

For assistance in working with Eclipse, please see How to Run Java Program with Eclipse.

It's fairly easy.



[edit] Question & Answer

Any question?

Click edit and post your question or answer here.


Personal tools