JAVA中控制double和float的精度

2012-11-12

  本篇介绍了在JAVA中如何对double或者float的浮点数进行精度计算,在JAVA中提供了多种参数来实现精度的不同控制方式。具体例子如下:

  转自http://stephen830.javaeye.com/blog/260776

  Java代码

  /*

  * Created on 2005-6-5

  * Author stephen

  * Email zhoujianqiang AT gmail DOT com

  * CopyRight(C)2005-2008 , All rights reserved.

  */

  package com.soft4j.utility;

  import java.math.BigDecimal;

  /**

  * 与小数位精度(四舍五入等)相关的一些常用工具方法.

  *

  * 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>

  *

  * @author stephen

  * @version 1.0.0

  */

  public final class RoundTool {

  /**

  * 对double数据进行取精度.

  * <p>

  * For example: <br>

  * double value = 100.345678; <br>

  * double ret = round(value,4,BigDecimal.ROUND_HALF_UP); <br>

  * ret为100.3457 <br>

  *

  * @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;

  }

分享到:
0
相关阅读
友情链接
© 2018 我考网 http://www.woexam.com 中国互联网举报中心 湘ICP备18023104号 京公网安备 11010802020116号
违法和不良信息举报:9447029@qq.com