Java DecimalFormat示例
时间:2020-02-23 14:34:59 来源:igfitidea点击:
在本教程中,我们将看到如何使用Java中使用DECIMALFORMAT格式化数字。
decimalformat
DECIMALFORMAT类是NumberFormat类的子类,它用于使用指定格式模式格式化数字。
我们可以使用逗号格式化最多2个小数点的小数点,使用逗号到分隔数字。
创建decimalformat对象
String pattern="###,###.00"; DecimalFormat df=new DecimalFormat(pattern);
我们通过DECIMALFORMAT构造函数指定数字的字符串(即模式)。
DECIMALFORMAT的格式方法可用于格式化Number.once我们创建DECIMALFORMAT对象的对象,我们可以调用格式方法并将数字传递为参数。
String number=df.format(123456789.123);
一些数字格式模式是:
| 符号 | 意思 |
|---|---|
| 0 | 它总是显示0,如果数字有较少的数字 |
| # | 一位数字,领先的零,并显示固定数字 |
| . | 标记十进制分隔符。 |
| , | 标记分组分隔符。 |
下面是一些示例
|模式|号码|格式化的字符串|
| --- - | --- | - - |
| 00.## | 8.567 | 08.56 |
| ###,###.## | 987654.56 | 987654.56 |
| ###.000 | 12345.84 | 12345.84 |
下面的示例显示了在Java中的DefimalFormat的使用:
package org.igi.theitroad;
import java.text.DecimalFormat; //import package
public class DecimalFormatExample
{
public static void main(String args[])
{
//formatting number upto 2 decimal places
String pattern1="###,###.00"; //pattern according to which number will be formatted
DecimalFormat df=new DecimalFormat(pattern1); //object creation and initialized with string
System.out.println(df.format(987654341.9)); //pass number to format method for formatting
System.out.println(df.format(7654341.987));
//formatting upto 3 decimal places
String pattern2="#,###.000";
df=new DecimalFormat(pattern2);
System.out.println(df.format(100000098));
System.out.println(df.format(10000000.98));
System.out.println(df.format(10000000.98789));
}
}
When you run above program, you will get below output
输出
987,675,341.90 7,654,341.99 1,000,000,980.000 10,000,000.980 10,000,000.987
在上面的示例中,当我们在十进制之后格式化高达2位数的小数点时,在十进制之后只有两位数的数字将仅打印两位数,在高达3位小数位置,如果其中少于三位数字,则将仅打印到3位数的3位数。
到底。
分组数字
我们可以使用DECIMALFORMAT对象上的方法SetGroupSize()从十进制开始分组数字。
package org.igi.theitroad;
import java.text.DecimalFormat; //import package
public class DecimalFormatExample
{
public static void main(String args[])
{
//formatting number upto 2 decimal places
String pattern1="###,###.00"; //pattern according to which number will be format
DecimalFormat df=new DecimalFormat(pattern1); //object creation and initialized with string
df.setGroupingSize(4);
System.out.println(df.format(987654341.9)); //pass number to format method for formatting
}
}
运行上面的程序时,我们将得到以下输出
9,8765,4341.90
Please note that DecimalFormat is not thread safe means in multithreading environment don’t use DecimaFormat.

