在java中,通常我们需要进行数值运算和保留小数的需求。Java 中有提供DecimalFormat类,这个类就可以满足我们保留小数的要求了。
例如保留两位小数:
DecimalFormat df = new DecimalFormat("0.00");
double dou = 157989.7844545;
System.out.println(df.format(dou));
运行结果为:
。
如果四位小数的话,只需要在格式中变化下就好了。
DecimalFormat df = new DecimalFormat("0.0000");
double dou = 157989.78445945;
System.out.println(df.format(dou));
注意:如果运算的时候是int 或者long类型的话,最好转成double类型,以免造成数据精度丢失,要不然可能给你返回零。
下面还有一些案例参考:
double pi = 3.1415927;
//取一位整数
System.out.println(new DecimalFormat("0").format(pi));//3
//取一位整数和两位小数
System.out.println(new DecimalFormat("0.00").format(pi));//3.14
//取两位整数和三位小数,整数不足部分以0填补。
System.out.println(new DecimalFormat("00.000").format(pi));//03.142
//取所有整数部分
System.out.println(new DecimalFormat("#").format(pi));//3
//以百分比方式计数,并取两位小数
System.out.println(new DecimalFormat("#.##%").format(pi));//314.16%
long c = 299792458;//光速
//显示为科学计数法,并取五位小数
System.out.println(new DecimalFormat("#.#####E0").format(c));//2.99792E8
//显示为两位整数的科学计数法,并取四位小数
System.out.println(new DecimalFormat("00.####E0").format(c));//29.9792E7
//每三位以逗号进行分隔。
System.out.println(new DecimalFormat(",###").format(c));//299,792,458
//将格式嵌入文本
System.out.println(new DecimalFormat("光速大小为每秒,###米。").format(c));//光速大小 为每秒299,792,458米。
供大家参考下。