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();
}
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();
}
相关文章推荐
- java 如何保留数据后两位小数
- java中double类型的数据保留两位小数的方法
- java double 类型数据保留两位小数
- java double数据保留两位小数的4中方法
- 关于java格式化数据,保留两位小数不精准的问题
- 在java中,怎样使double类型的数据输出时只保留两位小数?
- java保留两位小数
- java 保留两位小数4种方法
- Java中的格式化数值(eg:保留两位小数)
- java、freemarker保留两位小数
- java保留两位小数
- java保留两位小数问题
- java保留两位小数4种方法
- java double类型保留两位小数4种方法
- java保留两位小数
- Double 数据保留两位小数一:五舍六入
- java保留后两位小数
- JAVA 保留两位小数的方法
- Java中如何取得指定小数位数的double型数据
- java保留两位小数