在java中要保留数字小数位我们有常用的四种方法,分别为:四舍五入,DecimalFormat,format,String .format与struts标签操作实现,下面给出例子
方式一:
四舍五入
double f = 111231.5585;
四舍五入 保留两位小数,可以用String的format函数,
方法如下:
System.out.println(String.format("%.2f", x1));
System.out.println(String.format("%.2f", x2));
DecimalFormat转换最简便
public void m2() {
DecimalFormat df = new DecimalFormat("#.00");
System.out.println(df.format(f));
}
例:new java.text.DecimalFormat(”#.00″).format(3.1415926)
#.00 表示两位小数 #.0000四位小数 以此类推…
方式三:
double d = 3.1415926;
String result = String .format(”%.2f”);
%.2f %. 表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型。
方式四:
此外如果使用struts标签做输出的话,有个format属性,设置为format="0.00"就是保留两位小数
例如
import java.text.DecimalFormat;
public class numberFarmat {
public static void main(String[] args) {
double sd = 23.2558896635;
//第一种方法 10000.0这个小数点后只表示保留小数,和位数没关系。
double d1 = (double) (Math.round(sd*10000)/10000.0000000000);
double d2 = (double) (Math.round(sd*10000)/10000.0);
System.out.println("4位小数测试:"+d1);
System.out.println("4位小数测试:"+d2);
//第二种方法
DecimalFormat df2 = new DecimalFormat("###.00");
DecimalFormat df3 = new DecimalFormat("##.000");
System.out.println("3位小数:"+df3.format(sd));
System.out.println("2位小数:"+df2.format(sd));
}
}
运行结果如下:
4位小数测试:23.2559
4位小数测试:23.2559
3位小数:23.256
2位小数:23.26