2016-09-01 00:57齐晓强 客户经理
JAVA中如何对double或者float的浮点数进行精度计算,
在JAVA中提供了多种参数来实现精度的不同控制方式。
具体例子如下:
package com.soft4j.utility;
import java.math.BigDecimal;
/**
* 与小数位精度(四舍五入等)相关的一些常用工具方法.
*
* float/double的精度取值方式分为以下几种:
* java.math.BigDecimal.ROUND_UP
* java.math.BigDecimal.ROUND_DOWN
* java.math.BigDecimal.ROUND_CEILING
* java.math.BigDecimal.ROUND_FLOOR
* java.math.BigDecimal.ROUND_HALF_UP
* java.math.BigDecimal.ROUND_HALF_DOWN
* java.math.BigDecimal.ROUND_HALF_EVEN
*
* @author stephen
* @version 1.0.0
*/
public final class RoundTool {
/**
* 对double数据进行取精度.
*
* For example:
* double value = 100.345678;
* double ret = round(value,4,BigDecimal.ROUND_HALF_UP);
* ret为100.3457
*
* @param value
* double数据.
* @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;
}
/**
* 测试用的main方法.
*
* @param argc
* 运行参数......