double类型相除的小数位数保留问题

今天让小数位数的保留问题折磨了半天,自己搞定是搞定,但很不理想,上网查找了一些结合自己的保存起来以便后用:

public static void main(String[] args) {
  //方法一:
  //保留小数位数,并能四舍五入
  DecimalFormat de = new DecimalFormat("0.00");
  System.out.println(de.format(52.83252));
  
  //方法二:
  //最简单的保留两位小数方法,并能四舍五入
  double dou = 0.36854;
  dou = Math.round(dou*100);
  System.out.println(dou/100);
  
  //方法三:
  //BigDecimal --des.setScale()方法里的2,表示保留的小数位数
  //第二个参数为也可为 ROUND_HALF_UP
  //doubleValue() 保证输入的结果为double类型,也可以有intValue()方法
  BigDecimal des = new BigDecimal(0.36584);
  des = des.setScale(2, BigDecimal.ROUND_HALF_EVEN);
  System.out.println(des.doubleValue());
  
  //如果des.setScale()方法里的第二个参数为ROUND_HALF_UP
  des = des.setScale(2, BigDecimal.ROUND_HALF_UP);
  System.out.println(des.intValue());
  
  
  //方法四:
  NumberFormat forma = NumberFormat.getIntegerInstance();
  forma.setMaximumFractionDigits(2);
  System.out.println(forma.format(0.6358));
  
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值