您的位置:首页 > 编程语言 > Java开发

java 保留小数点后两位的几种方法举例

2016-07-15 10:01 696 查看
方法一:使用DecimalFormat类(最常用)

//1.#.00 表示两位小数 #.0000四位小数 以此类推...
double d1=123.4567;
DecimalFormat  df=new DecimalFormat("#.00");
String dd1=df.format(d1);   //返回的是一个String类型的值
System.out.println(Double.parseDouble(dd1));//结果是四舍五入

输出:123.46

方法二:使用BigDecimal类的setScale方法
double d2=123.4567;
BigDecimal bd=new BigDecimal(d2);
double dd2=bd.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();//参数:ROUND_HALF_UP--四舍五入
System.out.println(dd2);


结果:123.46
方法三:使用setMaximumFractionDigits方法
//3.结果也是四舍五入
double d3=3.1415926;
NumberFormat nf=NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);//设置要保留的数位
String s=nf.format(d3);
System.out.println(s);
结果:3.14

方法四:利用算法实现
double d4=3.1415926;
d4=Math.round(d4*100);
double dd4=d4/100;//保留3位 就是*1000 ,再/1000
System.out.println(dd4);
结果:3.14
方法五:通过类型转换

//5 先*100转成int再除以100.0(是100的小数类型),同理 3位的话就是1000
double  d5=3.1415926;
d5=((int)(d5*100))/100.0;
System.out.println(d5);
结果:3.14

方法六:


double d6=3.1415926;
StringBuilder s6=new StringBuilder(d6+"");
String ss6=s6.substring(0, s6.indexOf(".")+3);
System.out.println(Double.parseDouble(ss6));
结果:3.14

方法七:
double	a=3.1415926;
double	b=3.1415926;
double	c=3.1415926;
String   str1=String.format("%.2f",a);
System.out.println(Double.parseDouble(str1));
String   str2= String.format("%.2f,%.2f,%.2f ",a,b,c);//可以传多参数,就是不好取
System.out.println(str2);
结果:3.14

3.14,3.14,3.14 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java