读书人

提供精确的小数位四舍五入处置

发布时间: 2012-12-27 10:17:10 作者: rapoo

提供精确的小数位四舍五入处理

提供精确的小数位四舍五入处理,这个工具类很实用!/** <p>Title: 提供精确的小数位四舍五入处理</p>* <p>Description: 提供精确的小数位四舍五入处理</p>* <p>Copyright: Copyright (c) 2005</p>* <p>Company: ***</p>*/package com.neusoft.others;import Java.math.BigDecimal;/*** 类Round.java的实现描述:提供精确的小数位四舍五入处理 ** @author wangdw wang8121@hotmail.com* @version 1.0* Date 2005-1-14* @see java.lang.Class* History:* <author> <time> <version> <desc>*/public class Round{/*** 提供精确的小数位四舍五入处理。* @param v 需要四舍五入的数字* @param scale 小数点后保留几位* @return 四舍五入后的结果*/private double round(double v, int scale){if (scale < 0){throw new IllegalArgumentException("The scale must be a positive integer or zero");}BigDecimal b = new BigDecimal(Double.toString(v));BigDecimal one = new BigDecimal("1");return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();}/*** * 非四舍五入取整处理* @param v* @return*/public int roundDown(double v){BigDecimal b = new BigDecimal(Double.toString(v));BigDecimal one = new BigDecimal("1");return b.divide(one, 0, BigDecimal.ROUND_DOWN).intValue();}/*** * 四舍五入取整处理* @param v* @return*/public int roundUp(double v){BigDecimal b = new BigDecimal(Double.toString(v));BigDecimal one = new BigDecimal("1");return b.divide(one, 0, BigDecimal.ROUND_UP).intValue();}public static void main(String[] args){Round round = new Round();System.out.println(round.round(18.456, 2));System.out.println(round.roundDown(18.567));System.out.println(round.roundUp(18.567));double doubleValue = 18.567;int intValue = (int)doubleValue;System.out.println(intValue);}

?

读书人网 >编程

热点推荐