常用統計算法JAVA實現 - 工具類(01)

Mutil是一個工具類,  後續的文章的統計方法中會用到;


import java.math.BigDecimal;
/**
 * 
 * @類描述:  一個工具類,爲了保證計算準確性,將double之間的運算轉換爲BigDecimal之間的運算 <br/>
 * @項目名稱:Statistics   <br/>
 * @包名: descrptive   <br/>
 * @類名稱:Mutil   <br/>
 * @創建人:micheal   <br/>
 * @創建時間:2019年1月15日下午3:09:45   <br/>
 * @修改人:micheal   <br/>
 * @修改時間:2019年1月15日下午3:09:45   <br/>
 * @修改備註:   <br/>
 * @version v1.0   <br/>
 * @see    <br/>
 * @bug    <br/>
 * @Copyright    <br/>
 * @mail [email protected]  
 
 */
public class Mutil {
	/**
	 * 
	 *  * @描述: 加法 <br/>
	 *  * @方法名: add <br/>
	 *  * @param v1 <br/>
	 *  * @param v2 <br/>
	 *  * @return <br/>
	 *  * @返回類型 double <br/>
	 *  * @創建人 micheal <br/>
	 *  * @創建時間 2019年1月5日下午9:37:50 <br/>
	 *  * @修改人 micheal <br/>
	 *  * @修改時間 2019年1月5日下午9:37:50 <br/>
	 *  * @修改備註 <br/>
	 *  * @since <br/>
	 *  * @throws  
	 */
	public static double add(double v1, double v2) {
		BigDecimal b1 = new BigDecimal(Double.toString(v1));
		BigDecimal b2 = new BigDecimal(Double.toString(v2));
		return b1.add(b2).doubleValue();
	}

	/**
	 * 
	 *  * @描述: 減法 <br/>
	 *  * @方法名: subtract <br/>
	 *  * @param v1 <br/>
	 *  * @param v2 <br/>
	 *  * @return <br/>
	 *  * @返回類型 double <br/>
	 *  * @創建人 micheal <br/>
	 *  * @創建時間 2019年1月5日下午9:38:16 <br/>
	 *  * @修改人 micheal <br/>
	 *  * @修改時間 2019年1月5日下午9:38:16 <br/>
	 *  * @修改備註 <br/>
	 *  * @since <br/>
	 *  * @throws  
	 */
	public static double subtract(double v1, double v2) {
		BigDecimal b1 = new BigDecimal(Double.toString(v1));
		BigDecimal b2 = new BigDecimal(Double.toString(v2));
		return b1.subtract(b2).doubleValue();
	}

	/**
	 * 
	 *  * @描述: 乘法 <br/>
	 *  * @方法名: mul <br/>
	 *  * @param d1 <br/>
	 *  * @param d2 <br/>
	 *  * @return <br/>
	 *  * @返回類型 double <br/>
	 *  * @創建人 micheal <br/>
	 *  * @創建時間 2019年1月5日下午9:38:33 <br/>
	 *  * @修改人 micheal <br/>
	 *  * @修改時間 2019年1月5日下午9:38:33 <br/>
	 *  * @修改備註 <br/>
	 *  * @since <br/>
	 *  * @throws  
	 */
	public static double multiply(double d1, double d2) {// 進行乘法運算
		BigDecimal b1 = new BigDecimal(d1);
		BigDecimal b2 = new BigDecimal(d2);
		return b1.multiply(b2).doubleValue();
	}

	/**
	 * 
	 *  * @描述: 除法 ,四捨五入<br/>
	 *  * @方法名: div <br/>
	 *  * @param d1 <br/>
	 *  * @param d2 <br/>
	 *  * @param len ,保留的小數位數<br/>
	 *  * @return <br/>
	 *  * @返回類型 double <br/>
	 *  * @創建人 micheal <br/>
	 *  * @創建時間 2019年1月5日下午9:38:59 <br/>
	 *  * @修改人 micheal <br/>
	 *  * @修改時間 2019年1月5日下午9:38:59 <br/>
	 *  * @修改備註 <br/>
	 *  * @since <br/>
	 *  * @throws  
	 */
	public static double divide(double d1, double d2, int len) {// 進行除法運算
		BigDecimal b1 = new BigDecimal(d1);
		BigDecimal b2 = new BigDecimal(d2);
		 
		return b1.divide(b2, len, BigDecimal.ROUND_HALF_UP).doubleValue();
	}
	/**
	 *   
	 * @描述:  除法,四捨五入取整數 ,例如:5/2=3(2.5四捨五入); 5/3=2(1.6四捨五入);<br/>
	 * @方法名: div   <br/>
	 * @param d1 <br/>
	 * @param d2 <br/>
	 * @return   <br/>
	 * @返回類型 double  <br/> 
	 * @創建人 micheal   <br/>
	 * @創建時間 2019年1月5日下午10:54:51 <br/>  
	 * @修改人 micheal   <br/>
	 * @修改時間 2019年1月5日下午10:54:51 <br/>  
	 * @修改備註   <br/>
	 * @since   <br/>
	 * @throws   <br/>
	 
	 */
	public static double divide(double d1, double d2) {// 進行除法運算
		BigDecimal b1 = new BigDecimal(d1);
		BigDecimal b2 = new BigDecimal(d2);
		return b1.divide(b2, BigDecimal.ROUND_HALF_UP).doubleValue();
	}

	/**
	 * 
	 *  * @描述: 四捨五入 <br/>
	 *  * @方法名: round  * @param d <br/>
	 *  * @param len <br/>
	 *  * @return <br/>
	 *  * @返回類型 double <br/>
	 *  * @創建人 micheal <br/>
	 *  * @創建時間 2019年1月5日下午9:39:13 <br/>
	 *  * @修改人 micheal <br/>
	 *  * @修改時間 2019年1月5日下午9:39:13 <br/>
	 *  * @修改備註 <br/>
	 *  * @since <br/>
	 *  * @throws <br/>
	 *  
	 */
	public static double round(double d, int len) {
		BigDecimal b1 = new BigDecimal(d);
		BigDecimal b2 = new BigDecimal(1);
		// 任何一個數字除以1都是原數字
		// ROUND_HALF_UP是BigDecimal的一個常量,表示進行四捨五入的操作
		return b1.divide(b2, len, BigDecimal.ROUND_HALF_UP).doubleValue();
	}
	
	public static void main(String[] args){
		double a = 10;
		double b = 3;
		System.out.println(divide(a,b,2));
		System.out.println(divide(a,b));
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章