Files
Aria/AppFrame/src/main/java/com/arialyy/frame/util/MathUtil.java
2024-08-20 16:54:35 +08:00

48 lines
1.3 KiB
Java

package com.arialyy.frame.util;
import java.math.BigDecimal;
/**
* Created by AriaLyy on 2015/1/4.
* 精度转换
*/
public class MathUtil {
/**
* http://spiritfrog.iteye.com/blog/602144
*/
public class MBigDecimal {
public static final int ROUND_UP = 0;
public static final int ROUND_DOWN = 1;
public static final int ROUND_CEILING = 2;
public static final int ROUND_FLOOR = 3;
public static final int ROUND_HALF_UP = 4;
public static final int ROUND_HALF_DOWN = 5;
public static final int ROUND_HALF_EVEN = 6;
public static final int ROUND_UNNECESSARY = 7;
}
/**
* 设置精度
* float/double的精度取值方式分为以下几种: <br>
* java.math.BigDecimal.ROUND_UP <br>
* java.math.BigDecimal.ROUND_DOWN <br>
* java.math.BigDecimal.ROUND_CEILING <br>
* java.math.BigDecimal.ROUND_FLOOR <br>
* java.math.BigDecimal.ROUND_HALF_UP<br>
* java.math.BigDecimal.ROUND_HALF_DOWN <br>
* java.math.BigDecimal.ROUND_HALF_EVEN <br>
*
* @param scale 精度位数(保留的小数位数)
* @param roundingMode 精度取值方式
* @return 精度计算后的数据
*/
public static double round(double value, int scale, int roundingMode) {
BigDecimal bd = new BigDecimal(value);
bd = bd.setScale(scale, roundingMode);
double d = bd.doubleValue();
bd = null;
return d;
}
}