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.