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

java double型数据保留两位小数

2013-12-31 17:05 417 查看
     方法一: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();

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