Java Tutorial/I18N/DecimalFormat

Материал из Java эксперт
Перейти к: навигация, поиск

Arabic Digits

   <source lang="java">

import java.awt.Font; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.text.NumberFormat; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class ArabicDigitsI18N extends JPanel {

 public ArabicDigitsI18N() {
   DecimalFormat df = (DecimalFormat) NumberFormat.getInstance();
   DecimalFormatSymbols dfs = df.getDecimalFormatSymbols();
   dfs.setZeroDigit("\u0660");
   df.setDecimalFormatSymbols(dfs);
   JLabel label = new JLabel(df.format(1234567.89));
   label.setFont(new Font("Lucida Sans", Font.PLAIN, 22));
   add(label);
 }
 public static void main(String[] argv) {
   JFrame frame = new JFrame();
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   frame.getContentPane().add("Center", new ArabicDigitsI18N());
   frame.pack();
   frame.setVisible(true);
 }

}</source>





Displaying numbers with commas

   <source lang="java">

import java.text.DecimalFormat; public class Main {

 public static void main(String args[]) {
   double d = 123456.78;
   DecimalFormat df = new DecimalFormat("#####0.00");
   System.out.println(df.format(d));
 }

}</source>





Display numbers in scientific notation

   <source lang="java">

import java.text.DecimalFormat; import java.text.NumberFormat; public class Main {

 public static void main(String args[]) {
   NumberFormat formatter = new DecimalFormat();
   int maxinteger = Integer.MAX_VALUE;
   System.out.println(maxinteger); 
   formatter = new DecimalFormat("0.######E0");
   System.out.println(formatter.format(maxinteger));
   formatter = new DecimalFormat("0.#####E0");
   System.out.println(formatter.format(maxinteger));
   int mininteger = Integer.MIN_VALUE;
   System.out.println(mininteger); 
   formatter = new DecimalFormat("0.######E0");
   System.out.println(formatter.format(mininteger)); 
   formatter = new DecimalFormat("0.#####E0");
   System.out.println(formatter.format(mininteger));
   double d = 0.12345;
   formatter = new DecimalFormat("0.#####E0");
   System.out.println(formatter.format(d));
   formatter = new DecimalFormat("000000E0");
   System.out.println(formatter.format(d)); 
 }

}</source>





Format a number with leading zeros

   <source lang="java">

import java.text.DecimalFormat; import java.text.NumberFormat; public class Main {

 public static void main(String[] args) {
   NumberFormat formatter = new DecimalFormat("0000000");
   String number = formatter.format(2500);
   System.out.println("Number with lading zeros: " + number);
 }

}</source>





new DecimalFormat("##00")

   <source lang="java">

import java.text.DecimalFormat; import java.text.NumberFormat; public class Main {

 public static void main(String[] argv) throws Exception {
   NumberFormat formatter = new DecimalFormat("##00");
   String s = formatter.format(0); // 00
   System.out.println(s);
 }

}</source>





new DecimalFormat("0.00")

   <source lang="java">

import java.text.DecimalFormat; import java.text.NumberFormat; public class Main {

 public static void main(String[] argv) throws Exception {
   NumberFormat formatter = new DecimalFormat("0.00");
   String s = formatter.format(-.567); // -0.57
   System.out.println(s);
 }

}</source>





new DecimalFormat("#.), append zero

   <source lang="java">

import java.text.DecimalFormat; import java.text.NumberFormat; public class Main {

 public static void main(String[] argv) throws Exception {
   NumberFormat formatter = new DecimalFormat("#.000000");
   String s = formatter.format(-1234.567); 
   System.out.println(s);
 }

} //-1234.567000</source>





new DecimalFormat("#,###,###"), group

   <source lang="java">

import java.text.DecimalFormat; import java.text.NumberFormat; public class Main {

 public static void main(String[] argv) throws Exception {
   NumberFormat formatter = new DecimalFormat("#,###,###");
   String s = formatter.format(-1234.567);
   System.out.println(s);
   s = formatter.format(-1234567.890);
   System.out.println(s);
 }

} // -1,235 // -1,234,568</source>





new DecimalFormat(".######"), keep fraction

   <source lang="java">

import java.text.DecimalFormat; import java.text.NumberFormat; public class Main {

 public static void main(String[] argv) throws Exception {
   NumberFormat formatter = new DecimalFormat(".######");
   String s = formatter.format(-1234.567); // -1234.567
   System.out.println(s);
 }

}//-1234.567</source>





new DecimalFormat("#.######") more digits

   <source lang="java">

import java.text.DecimalFormat; import java.text.NumberFormat; public class Main {

 public static void main(String[] argv) throws Exception {
   NumberFormat formatter = new DecimalFormat("#.######");
   String s = formatter.format(-1234.567); // -1234.567
   System.out.println(s);
 }

}</source>





new DecimalFormat("#.#") two digits

   <source lang="java">

import java.text.DecimalFormat; import java.text.NumberFormat; public class Main {

 public static void main(String[] argv) throws Exception {
   NumberFormat formatter = new DecimalFormat("#.#");
   String s = formatter.format(-1234.567); // -1234.6
   System.out.println(s);
 }

}</source>





The 0 symbol shows a digit or 0 if no digit present

   <source lang="java">

import java.text.DecimalFormat; import java.text.NumberFormat; public class Main {

 public static void main(String[] argv) throws Exception {
   NumberFormat formatter = new DecimalFormat("000000");
   String s = formatter.format(-1234.567);
   System.out.println(s);
   // number was rounded up
 }

} //-001235</source>





The . symbol indicates the decimal point

   <source lang="java">

import java.text.DecimalFormat; import java.text.NumberFormat; public class Main {

 public static void main(String[] argv) throws Exception {
   NumberFormat formatter = new DecimalFormat(".00");
   String s = formatter.format(-.567); // -.57
   System.out.println(s);
 }

}</source>





The , symbol is used to group numbers

   <source lang="java">

import java.text.DecimalFormat; import java.text.NumberFormat; public class Main {

 public static void main(String[] argv) throws Exception {
   NumberFormat formatter = new DecimalFormat("#,###,###");
   String s = formatter.format(-1234.567);
   System.out.println(s);
   s = formatter.format(-1234567.890);
   System.out.println(s);
 }

} // -1,235 // -1,234,568</source>





The " symbol is used to quote literal symbols

   <source lang="java">

import java.text.DecimalFormat; import java.text.NumberFormat; public class Main {

 public static void main(String[] argv) throws Exception {
   NumberFormat formatter = new DecimalFormat(""#"#");
   String s = formatter.format(-1234.567); 
   System.out.println(s);
 }

} //-#1235</source>





The ; symbol is used to specify an alternate pattern for negative values

   <source lang="java">

public class Main{ public static void main(String[] argv) throws Exception{

   NumberFormat formatter = new DecimalFormat("#;(#)");
   String s = formatter.format(-1234.567);         // (1235)
   sysout

}}</source>





Use group separators and show trailing zeros

   <source lang="java">

import java.text.DecimalFormat; public class Main {

 public static void main(String[] argv) throws Exception {
   DecimalFormat df = new DecimalFormat("#,.00;(#,.00)");
   System.out.println(df.format(7123.00));
 }

}</source>