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

方法一:使用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 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值