格式化输出
Java中API类NumberFormat提供了货币格式化,百分比格式化和数值格式化。需要语句importjava.text.NumberFormat;
一、货币格式化
currency 名,货币,流通。Instance名。例子,情况。Locale名,地方。Format名,动。格式。
1、getCurrencyInstance()。静态方法,建立一个NumberFormat类的对象并返回引用,该引用指定货币格式为系统预设的货币格式。举例如下:importjava.text.NumberFormat;
public class NumberFormat001 {
public staticvoid main(String[] args){
NumberFormatnf=NumberFormat.getCurrencyInstance();
System.out.println(nf.format(123.658));
}//main end
}//class end
运行结果:¥123.56
2、getCurrencyInstance(Locale)。静态方法,建立一个NumberFormat类的对象,并返回引用,该引用的货币格式由Locale指定。Locale类在java.util包中。举例如下:
import java.text.NumberFormat;
import java.util.Locale;
import java.util.Locale;
public class NumberFormat002 {
public staticvoid main(String[] args){
//Locale locale=Locale.US;
NumberFormatnf=NumberFormat.getCurrencyInstance(Locale.US);
System.out.println(nf.format(1236.258));
}//main end
}//class end
运行结果:$1,236.26
3、format(anyNumberType)。返回由NumberFormat的静态方法所指定的输出格式,这个格式由字符串来表达。参数可以是数值类或者BigDecimal对象。不再举例。
二、百分比格式化
Percent名,百分数。Fraction名,片断,分数。Digit名,阿拉伯数字。Minimum最小的。Maximum最大的。
方法:
1、getPercentInstance()。静态方法,创建一个NumberFormat类的对象并返回其引用。该对象指定百分比格式为系统预设格式。
2、getPercentInstance(Locale)。静态方法,创建一个NumberFormat类的对象并返回引用。该对象的百分比格式由Locale来指定。
3、format(anyNumberType)。返回由NumberFormat的静态方法所指定的输出格式,这个格式由字符串来表达。参数可以是数值类型或者;BigDecimal对象。
举例如下:
import java.text.NumberFormat;
import java.util.Locale;
public class NumberFormat003 {
public staticvoid main(String[] args){
double d=123.6958;
NumberFormatnf=NumberFormat.getPercentInstance();
System.out.println(nf.format(d));
NumberFormatnf1=NumberFormat.getPercentInstance(Locale.CANADA);
System.out.println(nf1.format(d));
}//main end
}//class end
运行结果:
12,370%
12,370%
4、setMinimumFractionDigits(int)设置最少小数点位数
5、setMaximumFractionDigits(int)设置最多小数位数。
举例如下:
import java.text.NumberFormat;
import java.util.Locale;
public class NumberFormat003 {
public staticvoid main(String[] args){
double d=123.6958;
NumberFormatnf=NumberFormat.getPercentInstance();
nf.setMinimumFractionDigits(4);//不足4位小数,则以0补位。
System.out.println(nf.format(d));
nf.setMaximumFractionDigits(1);//最多保留1位小数。
System.out.println(nf.format(d));
NumberFormatnf1=NumberFormat.getPercentInstance(Locale.CANADA);
System.out.println(nf1.format(d));
nf1.setMaximumFractionDigits(1);//最多保留1位小数,如无小数不补0。
System.out.println(nf1.format(d));
System.out.println(nf1.format(258));
}//main end
}//class end
运行结果:
12,369.5800%
12,369.6%
12,370%
12,369.6%
25,800%
三、数值格式化
方法:getNumberInstance();getNumberInstance(Locale);format(anyNumberType);setMinimumFractionDigits(int);setMaximumFractionDigits(int)。方法解释与百分比格式化类似,不再详述。举例如下:
import java.text.NumberFormat;
import java.util.Locale;
public class NumberFormat004 {
public staticvoid main(String[] args){
double d=123456.3698;
NumberFormatnf=NumberFormat.getNumberInstance();
System.out.println(nf.format(d));
nf.setMinimumFractionDigits(4);
System.out.println(nf.format(d));
NumberFormatnf01=NumberFormat.getNumberInstance(Locale.US);
System.out.println(nf01.format(d));
nf01.setMaximumFractionDigits(1);
System.out.println(nf01.format(d));
}//main end
}//class end
运行结果:
123,456.3698
123,456.37
123,456.4
四、用NumberFormat类的子类DecimalFormat来完成。
import java.text.DecimalFormat;
DecimalFormat提供了许多用来规定数字格式的模式字符串,进行对数字的格式化处理。本文只讨论常用的几种。
1、“0”——表示一位数值;如没有,显示0。如“0000.0000”,整数位>4,按实际输出,<4前面补0,凑足4位。
2、“#”——表示任何位数的整数。如没有,则不显示。在小数点模式后使用,只表示一位小数;四舍五入。如:
# 无小数,小数部分四舍五入。
.# 整数部分不变,一位小数,四舍五入。
.## 整数部分不变,二位小数,四舍五入。
3、“.”——表示小数点模式。
4、“,”与模式“0”一起使用,表示逗号。举例如下:
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class DecimalFormat001 {
public static void main(String[] args){
double d1=123456.36987,d2=12.3698;
DecimalFormat nf=new DecimalFormat("0000.000");
System.out.println("d1="+nf.format(d1)+"d2="+nf.format(d2));
nf=newDecimalFormat("#");
System.out.println("d1="+nf.format(d1));
nf=newDecimalFormat(".#");
System.out.println("d1="+nf.format(d1));
nf=newDecimalFormat(".###");
System.out.println("d1="+nf.format(d1));
nf=newDecimalFormat("0000,0000.0000");
System.out.println("d1="+nf.format(d1));
}//main end
}//class end