java double型数据保留两位小数


     方法一:double d = 3.1465926;
String result = String.format("%.2f", d);
System.out.println(result);  //四舍五入保留2位小数
            方法二:
DecimalFormat df=new DecimalFormat(".##");
System.out.println(df.format(3.14659));//四舍五入保留2位小数
     double  a = 3.236677;
DecimalFormat df1 = new DecimalFormat("0.00");  
DecimalFormat df2 = new DecimalFormat("0.00%"); 
System.out.println(df1.format(a));//3.24
System.out.println(df2.format(a));//323.67%




BigDecimal解决Long,Double类型四则运算中的丢精度问题
Long,Double类型变量再四则运算中经常出现丢精度.
建议凡是Long,Double类型的大数的加减乘除四则运算全部采用BigDecimal解决
甚至,min,max,abs等运算也建议以BigDecimal解决
public static Long getLongAdd(Long l1,Long l2){
  BigDecimal bd1 = new BigDecimal(l1);
  BigDecimal bd2 = new BigDecimal(l2);
  BigDecimal bd3 = bd1.add(bd2);
  return bd3.longValue();
 }
 public static Long getLongSub(Long l1,Long l2){
  BigDecimal bd1 = new BigDecimal(l1);
  BigDecimal bd2 = new BigDecimal(l2);
  BigDecimal bd3 = bd1.subtract(bd2);
  return bd3.longValue();
 }
 
 public static Double getLongMultiply(Long l1,Long l2){
  BigDecimal bd1 = new BigDecimal(l1);
  BigDecimal bd2 = new BigDecimal(l2);
  BigDecimal bd3 = bd1.multiply(bd2);
  return bd3.doubleValue();
 }
 public static Double getLongDivide(Long l1,Long l2,int point){
  BigDecimal bd1 = new BigDecimal(l1);
  BigDecimal bd2 = new BigDecimal(l2);
  BigDecimal bd3 = bd1.divide(bd2,point, BigDecimal.ROUND_HALF_EVEN); //point为小数点后几位
  return bd3.doubleValue();
 }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值