DecimalFormat 保留精度或者是 小数 比较好用

DecimalFormat 还是比较稳定和好用的 。少bug .

BigDecimal 类也有 四舍五入 ,和 保留 多少位小数 等等方法。 比如 ROUND_HALF_UP 可是 在使用的时候,还是比较难用,在某些情况下面 ,还是 会有多位小数的。 比如下面的我自己测试的 demo 不知道为什么 BigDecimal 不能保留 2位小数, DecimalFormat 可以保留2位小数,而且很好用啊,变字符串什么的,也可以通过字符串变其他 类型。好用多了。

double total =0.00;
		total=total+ 3
				*0.01*30;
		BigDecimal bigDecimal=new BigDecimal(total);
		
		DecimalFormat df = new DecimalFormat("#########0.##");
		df.setRoundingMode(RoundingMode.HALF_UP); //保留2位小数 ,不足不补0  
		System.out.println(">>>>"+df.format(total));
		
		bigDecimal.setScale(2,BigDecimal.ROUND_HALF_UP);
		System.out.println(bigDecimal.toString());
		BigDecimal totalScore=new BigDecimal("0.00");
		totalScore=totalScore.add(bigDecimal);
		double change = bigDecimal.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
		BigDecimal changeDecimal=new BigDecimal(change);
		System.out.println(changeDecimal.toString());
DecimalFormat df1 = new DecimalFormat("###0.00") ;  //保留两位小数,如果不足两位小数则自动补零  
System.out.println(df1.format(124.367));  
System.out.println(df1.format(124.3));  
          
DecimalFormat df2 = new DecimalFormat("###0.##") ; //保留两位小数,不足两位则不补零  
System.out.println(df2.format(124.6));  
System.out.println(df2.format(124));  
以下是保留两位小数,同时四舍五入,然后小数点前从右到作,3位一个逗号分隔符 
 float   scale  =   (float) 3434567;     
DecimalFormat   fnum  =   new  DecimalFormat("###,##0.00");   
String   dd=fnum.format(scale);         
System.out.println(dd);//3,434,567.00  

参考地址: http://blog.csdn.net/yansong_8686/article/details/27407513

转载于:https://my.oschina.net/ouminzy/blog/855530

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值