Java/Data Type/Decimal
Версия от 18:01, 31 мая 2010; (обсуждение)
Содержание
- 1 Change the decimal separator is set to "."
- 2 Convert a number using the current Locale()
- 3 DecimalFormat("0000000000E0")
- 4 DecimalFormat("00.00E0")
- 5 DecimalFormat("000E00")
- 6 DecimalFormat("00E00")
- 7 DecimalFormat("##E0") (exponent must be multiple of 2)
- 8 DecimalFormat("###E0") (exponent must be multiple of 3)
- 9 Display a currency value
- 10 Display a percentage
- 11 Display numbers with commas
- 12 Display numbers with leading zeroes
- 13 Display the amount of free memory in the Java Virtual Machine.
- 14 Display the maximum amount of memory
- 15 Display the total amount of memory in the Java virtual machine.
- 16 Force minimum number of digits to left and right of decimal point
- 17 new DecimalFormat("#.#")
- 18 new DecimalFormat("##00")
- 19 new DecimalFormat("0.00")
- 20 new DecimalFormat("#.000000")
- 21 new DecimalFormat("000000E0")
- 22 new DecimalFormat("0.######E0")
- 23 new DecimalFormat("#.######") (1)
- 24 new DecimalFormat(".######") (2)
- 25 new DecimalFormat(abc#)
- 26 new DecimalFormat("#,###,###") (grouping)
- 27 Round number to fewer decimals
- 28 Set format to two decimal places: set Maximum Fraction Digits
- 29 Set format to two decimal places: set Minimum Fraction Digits
- 30 The 0 symbol shows a digit or 0 if no digit present
- 31 The number of #"s to the left of the decimal point sets the multiple of the exponent.
- 32 The . symbol indicates the decimal point
- 33 The , symbol is used to group numbers
- 34 The " symbol is used to quote literal symbols
- 35 The ; symbol is used to specify an alternate pattern for negative values
- 36 Use group separators and show trailing zeroes
- 37 Use java.text.DecimalFormat to format integer
- 38 Use new DecimalFormat("0.#####E0") to format double
Change the decimal separator is set to "."
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
public class Main {
public static void main(String args[]) {
double d = 123456.7890;
DecimalFormat df = new DecimalFormat("#####0.00");
DecimalFormatSymbols dfs = df.getDecimalFormatSymbols();
dfs.setDecimalSeparator(".");
df.setDecimalFormatSymbols(dfs);
System.out.println(df.format(d));
}
}
Convert a number using the current Locale()
import java.text.NumberFormat;
import java.util.Locale;
public class Main {
public static void main(String[] args) throws Exception {
System.out.println(NumberFormat.getInstance(new Locale("us")).format(12345.12345));
}
}
//12,345.123
DecimalFormat("0000000000E0")
import java.text.DecimalFormat;
public class Main {
public static void main(String[] argv) throws Exception {
DecimalFormat formatter = new DecimalFormat("0000000000E0");
String s = formatter.format(-1234.567); // -1234567000E-6
System.out.println(s);
}
}
DecimalFormat("00.00E0")
import java.text.DecimalFormat;
public class Main {
public static void main(String[] argv) throws Exception {
DecimalFormat formatter = new DecimalFormat("00.00E0");
String s = formatter.format(-1234.567); // -12.35E2
System.out.println(s);
s = formatter.format(-.1234567); // -12.35E-2
System.out.println(s);
}
}
DecimalFormat("000E00")
import java.text.DecimalFormat;
public class Main {
public static void main(String[] argv) throws Exception {
DecimalFormat formatter = new DecimalFormat("000E00");
String s = formatter.format(-1234.567); // -123E01
System.out.println(s);
}
}
DecimalFormat("00E00")
import java.text.DecimalFormat;
public class Main {
public static void main(String[] argv) throws Exception {
DecimalFormat formatter = new DecimalFormat("00E00");
String s = formatter.format(-1234.567);
System.out.println(s);
}
}
// -12E02
DecimalFormat("##E0") (exponent must be multiple of 2)
import java.text.DecimalFormat;
public class Main {
public static void main(String[] argv) throws Exception {
DecimalFormat formatter = new DecimalFormat("##E0");
String s = formatter.format(-1234.567);
System.out.println(s);
s = formatter.format(-123.4567);
System.out.println(s);
s = formatter.format(-12.34567);
System.out.println(s);
}
}
// -12E2
// -1.2E2
// -12E0
DecimalFormat("###E0") (exponent must be multiple of 3)
import java.text.DecimalFormat;
public class Main {
public static void main(String[] argv) {
DecimalFormat formatter = new DecimalFormat("###E0");
String s = formatter.format(-1234.567); // -1.23E3
System.out.println(s);
s = formatter.format(-123.4567); // -123E0
System.out.println(s);
s = formatter.format(-12.34567); // -12.3E0
System.out.println(s);
s = formatter.format(-1.234567); // -12.3E0
System.out.println(s);
s = formatter.format(-.1234567); // -123E-3
System.out.println(s);
}
}
Display a currency value
import java.text.DecimalFormat;
public class Main {
public static void main(String[] argv) throws Exception {
DecimalFormat df = new DecimalFormat("\u00a4#,##0.00");
System.out.println(df.format(4232.19));
System.out.println(df.format(-4232.19));
}
}
Display a percentage
import java.text.DecimalFormat;
public class Main {
public static void main(String[] argv) throws Exception {
DecimalFormat df = new DecimalFormat("#%");
System.out.println(df.format(0.19));
System.out.println(df.format(-0.19));
}
}
/*19%
-19%
*/
Display numbers with commas
import java.text.DecimalFormat;
public class Main {
public static void main(String args[]) {
double d = 123456.7890;
DecimalFormat df = new DecimalFormat("#####0.00");
System.out.println(df.format(d));
}
}
//123456.79
Display numbers with leading zeroes
import java.text.DecimalFormat;
public class Main {
public static void main(String args[]) {
DecimalFormat df = new DecimalFormat("0000000000000000");
String z = df.format(123456);
System.out.println(z);
}
}
Display the amount of free memory in the Java Virtual Machine.
import java.text.DecimalFormat;
public class Main {
public static void main(String[] args) {
DecimalFormat df = new DecimalFormat("0.00");
long freeMem = Runtime.getRuntime().freeMemory();
System.out.println(df.format(freeMem / 1000000F) + " MB");
}
}
Display the maximum amount of memory
import java.text.DecimalFormat;
public class Main {
public static void main(String[] args) {
DecimalFormat df = new DecimalFormat("0.00");
long maxMem = Runtime.getRuntime().maxMemory();
System.out.println(df.format(maxMem / 1000000F) + " MB");
}
}
Display the total amount of memory in the Java virtual machine.
import java.text.DecimalFormat;
public class Main {
public static void main(String[] args) {
DecimalFormat df = new DecimalFormat("0.00");
long totalMem = Runtime.getRuntime().totalMemory();
System.out.println(df.format(totalMem / 1000000F) + " MB");
}
}
Force minimum number of digits to left and right of decimal point
import java.text.DecimalFormat;
public class Main {
public static void main(String[] argv) throws Exception {
DecimalFormat formatter = new DecimalFormat("0.0E0");
String s = formatter.format(-1234.567); // -1.2E3
System.out.println(s);
}
}
new DecimalFormat("#.#")
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);
}
}
new DecimalFormat("##00")
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);
}
}
new DecimalFormat("0.00")
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);
}
}
new DecimalFormat("#.000000")
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
new DecimalFormat("000000E0")
import java.text.DecimalFormat;
public class Main {
public static void main(String args[]) {
System.out.println(new DecimalFormat("000000E0").format(123123));
}
}
//123123E0
new DecimalFormat("0.######E0")
import java.text.DecimalFormat;
public class Main {
public static void main(String args[]) {
System.out.println(new DecimalFormat("0.######E0").format(12345));
}
}
//1.2345E4
new DecimalFormat("#.######") (1)
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);
}
}
new DecimalFormat(".######") (2)
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
new DecimalFormat(abc#)
import java.text.DecimalFormat;
import java.text.Format;
public class Main {
public static void main(String[] argv) throws Exception {
Format formatter = new DecimalFormat(""abc"#");
String s = formatter.format(-1234.567);
System.out.println(s);
}
}
// -abc1235
new DecimalFormat("#,###,###") (grouping)
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
Round number to fewer decimals
import java.text.DecimalFormat;
public class Main {
public static void main(String[] args) {
double numberToRound = 12345.6789;
DecimalFormat df = new DecimalFormat("0.000");
System.out.println("Rounded number = " + df.format(numberToRound));
System.out.println(String.format("Rounded number = %.3f", numberToRound));
}
}
/*
Rounded number = 12345.679
Rounded number = 12345.679
*/
Set format to two decimal places: set Maximum Fraction Digits
import java.text.NumberFormat;
public class Main {
public static void main(String args[]) {
NumberFormat nf = NumberFormat.getInstance();
System.out.println("Default format: " + nf.format(1234567.678));
nf.setMaximumFractionDigits(2);
System.out.println("Format with two decimal places: " + nf.format(1234567.678));
}
}
/*
Default format: 1,234,567.678
Format with two decimal places: 1,234,567.68
*/
Set format to two decimal places: set Minimum Fraction Digits
import java.text.NumberFormat;
public class Main {
public static void main(String[] argv) throws Exception {
NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(2);
System.out.println("Format with two decimal places: " + nf.format(1234567.678));
}
}
The 0 symbol shows a digit or 0 if no digit present
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
The number of #"s to the left of the decimal point sets the multiple of the exponent.
import java.text.DecimalFormat;
public class Main {
public static void main(String[] argv) throws Exception {
DecimalFormat formatter = new DecimalFormat("#E0"); // exponent can be any
// value
String s = formatter.format(-1234.567);
System.out.println(s);
s = formatter.format(-.1234567);
System.out.println(s);
}
}
//-.1E4
//-.1E0
The . symbol indicates the decimal point
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);
}
}
The , symbol is used to group numbers
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
The " symbol is used to quote literal symbols
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
The ; symbol is used to specify an alternate pattern for negative values
public class Main{
public static void main(String[] argv) throws Exception{
NumberFormat formatter = new DecimalFormat("#;(#)");
String s = formatter.format(-1234.567); // (1235)
sysout
}}
Use group separators and show trailing zeroes
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));
}
}
Use java.text.DecimalFormat to format integer
import java.text.DecimalFormat;
public class Main {
public static void main(String args[]) {
System.out.println(new DecimalFormat("0.#####E0").format(123456));
}
}
//1.23456E5
Use new DecimalFormat("0.#####E0") to format double
import java.text.DecimalFormat;
public class Main {
public static void main(String args[]) {
double d = 0.12345;
System.out.println(new DecimalFormat("0.#####E0").format(d));
}
}
//1.2345E-1