`
keepwork
  • 浏览: 332436 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

NumeralUtil

阅读更多
开发者博客:http://www.developsearch.com

/**
 * 数字型运算
 * 
 * @author chenxin
 * @version [版本号, 2012-5-21]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public class NumeralUtil {

	/**
	 * 整数相除,计算百分比,结果保留整数位
	 * 
	 * @param a
	 * @param b
	 * @return
	 */
	public static String getPercentNoPercent(int a, int b) {
		if (b == 0) {
			return "0";
		} else {
			Double c = new Double(a);
			Double d = new Double(b);
			double e = c.doubleValue() / d.doubleValue();
			DecimalFormat df2 = new DecimalFormat("##%");
			String result = df2.format(new Double(e));
			return result.replaceAll("\\%", "");
		}
	}

	
	/**
	 * double 相除,计算百分比,结果保留整数位
	 * 
	 * @param a
	 * @param b
	 * @return
	 */
	public static String getDoublePercent(double a, double b) {
		if (b == 0) {
			return "0";
		} else {
			Double c = new Double(a);
			Double d = new Double(b);
			double e = c.doubleValue() / d.doubleValue();
			DecimalFormat df2 = new DecimalFormat("##%");
			String result = df2.format(new Double(e));
			return result.replaceAll("\\%", "");
		}
	}

	/**
	 * 保留小数点后4位数字
	 * 
	 * @param a
	 * @return
	 */
	public static String get4numeral(double a) {
		DecimalFormat df = new DecimalFormat("0.0000");

		return df.format(a);

	}

	/**
	 * 将结果以万为单位保留2位小数.四舍五入 b 单位指,例如 一万为单位 b=10000
	 * 
	 * @param a
	 * @param b
	 * @return
	 */
	public static String getFormatterNumeral(double a, double b) {
		DecimalFormat df2 = new DecimalFormat("0.00");
		return df2.format(a / b);
	}

	
	/**
	 * 两个BigDecimal 相除
	 * 
	 * @param a
	 * @param b
	 * @param pot 保留位数
	 * @return
	 */
	public static double getBigDecimalDivide(BigDecimal a, BigDecimal b, int pot) {
		return a.divide(b, pot, BigDecimal.ROUND_HALF_UP).doubleValue();
	}
	
	
	/**
	 * 两个int 相除
	 * 
	 * @param a
	 * @param b
	 * @param pot
	 * @return
	 */
	public static double getIntDivide(int a, int b, int pot) {
		if (b == 0) {
			return 0;
		} else {
			BigDecimal num1 = new BigDecimal(a);
			BigDecimal num2 = new BigDecimal(b);

			return num1.divide(num2, pot, BigDecimal.ROUND_HALF_UP).doubleValue();
		}

	}
	

	/**
	 * 提供小数位四舍五入处理
	 * 
	 * @param v 需要四舍五入的数字
	 * @param scale 小数点后保留几位
	 * @return 四舍五入后的结果
	 */
	public Double round(double v, int scale) {
		String temp = "#,##0.";
		for (int i = 0; i < scale; i++) {
			temp += "0";
		}
		new java.text.DecimalFormat(temp).format(v);

		return new Double(new java.text.DecimalFormat(temp).format(v));
	}

	public static void main(String[] args) {
		System.out.println(getPercentNoPercent(3029,12974));
	}


}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics