处理double类型小数点的类,可以自定义小数点的位数,向上取整, 向下取整,四舍五入
import java.math.BigDecimal;
/**
* 数字转换器
* 处理double类型小数点位数
* @author dhh
*
*/
public class DoubleConverter {
/**
* double保留小数点位数,往上取整
* 比如处理【评分】等数据
* @param d 要处理的double值
* @param n 要保留的位数
* @return
*/
public static double getCeilNum(double d , int n){
BigDecimal b = new BigDecimal(String.valueOf(d));
b = b.divide(BigDecimal.ONE , n , BigDecimal.ROUND_CEILING);
return b.doubleValue();
}
/**
* double保留小数点位数,往下取整
* 比如处理【价格】等数据
* @param d 要处理的double值
* @param n 要保留的位数
* @return
*/
public static double getFloorNum(double d , int n){
BigDecimal b = new BigDecimal(String.valueOf(d));
b = b.divide(BigDecimal.ONE , n , BigDecimal.ROUND_FLOOR);
return b.doubleValue();
}
/**
* double保留小数点位数,四舍五入
* 比如处理价格等数据
* @param d 要处理的double值
* @param n 要保留的位数
* @return
*/
public static double getRoundingNum(double d , int n){
BigDecimal b = new BigDecimal(String.valueOf(d));
b = b.divide(BigDecimal.ONE , n , BigDecimal.ROUND_HALF_UP);
return b.doubleValue();
}
// public static void main(String[] args) {
// double pi = 3.1343432432d;
//
// double result = getCeilNum(pi,2);
//
// double result2 = getFloorNum(pi,2);
//
// double result3 = getRoundingNum(pi,2);
//
// System.out.println("我打印的Ceiling结果:" + result + "我打印的Floor结果:" + result2+ "我打印的Rounding结果:" + result3);
// }
}