一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

JAVA几个常用的数字格式化例子

时间:2016-03-18 编辑:简简单单 来源:一聚教程网

在JAVA里,在数据计算时有时候会出现关于“数据精度”的问题,比如2.333333333333333333333之类的数据,这时候我们就要考虑格式化的问题了,我总结了几个,关于小数点方面的。

注意:由于这里说得很简略,因此请参照下面的Demo程序。

格式化数字

在NumberFormat类中为我们提供了格式化4种数字的方法:整数、小数、货币和百分比,通过工厂方法getNumberInstance, getNumberIntance, getCurrencyInstance, getPercentInstance方法获得相应的实例对象就行。例如我们要以字符串表示人民币88888.88元,这样来写就行:

NumberFormat nf = NumberFormat.getCurrencyInstance();

System.out.println(nf.format(88888.88));

定制格式化数字

可是对于稍微复杂一点的需求,NumberFormat就满足不了了,幸好java还提供了DecimalFormat实现定制的格式化。要使用DecimalFormat对象,必须提供给它提供一个格式化的模式(pattern):

String pattern = …

DecimalFormat df = new DecimalFormat(pattern);

或者:

DecimalFormat df = new DecimalFormat();

df. applyPattern(pattern);

然后就调用它的format方法就行了。

例子,

直接上代码:

import java.text.DecimalFormat;
import java.text.NumberFormat;
public class Test {
 public static void main (String []a){
 DecimalFormat df=(DecimalFormat)NumberFormat.getInstance();
 DecimalFormat df2=(DecimalFormat) DecimalFormat.getInstance();
 DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance();
 //设置小数点的位数最大2位
 df.setMaximumFractionDigits(2);
 System.out.println("设置小数点的位数最大2位");
 System.out.println("12.1经过转化之后======"+df.format(12.1));
 System.out.println("12.1454651经过转化之后======"+df.format(12.1454651)+"\n");
 //设置小数点的位数必须2位
 df1.applyPattern("0.00");
 System.out.println("设置小数点的位数必须2位");
 System.out.println("12.1经过转化之后======"+df1.format(12.1));
 System.out.println("12.1454651经过转化之后======"+df1.format(12.1454651)+"\n");
 //设置百分比
 df.applyPattern("##.##%");
 System.out.println("设置百分比");
 System.out.println("1经过转化之后======"+df.format(1));
 System.out.println("0.016经过转化之后======"+df.format(0.016)+"\n");
 //设置分组大小
 df2.setGroupingSize(4);
 System.out.println("设置分组大小");
 System.out.println("123456789经过转化之后======"+df2.format(123456789));
 }
}

运行一下,结果如下

设置小数点的位数最大2位
12.1经过转化之后======12.1
12.1454651经过转化之后======12.15

设置小数点的位数必须2位
12.1经过转化之后======12.10
12.1454651经过转化之后======12.15

设置百分比
1经过转化之后======100%
0.016经过转化之后======1.6%

设置分组大小
123456789经过转化之后======1,2345,6789

热门栏目