Java對 Double 類型的數據進行四舍五入

dwd4 9年前發布 | 1K 次閱讀 Java

/**

 * 對 Double 類型的數據進行四舍五入
 * @author gaoqing
 * 2014-12-2
 * @param initValue 初始值
 * @param scaleNum 保留小數點的位數
 * @param tClass 保留小數點位數后,返回的數據類型的 Class 
 * @return t 四舍五入后的值
 */
public static <T> T roundDouleValue(Double initValue, int scaleNum, Class<T> tClass){
    T t = null;
    String className = tClass.getName().toLowerCase();


    if (initValue == null) {
        //返回類型為:整數
        if (className.contains("int")) {
            t = (T) Integer.valueOf(0);

            //返回類型為:浮點數
        }else if (className.contains("dou")) {
            t = (T) Double.valueOf(0.0);
        } 
    }else {
        BigDecimal bigDecimal = new BigDecimal(initValue);
        BigDecimal scaledBigDecimal = bigDecimal.setScale(scaleNum, BigDecimal.ROUND_HALF_UP);

        //返回類型為:整數
        if (className.contains("int")) {
            Integer tempInteger = new Integer(scaledBigDecimal.intValue());
            t = (T)tempInteger ;

            //返回類型為:浮點數
        }else if (className.contains("dou")) {
            Double tempDouble = new Double(scaledBigDecimal.doubleValue());
            t = (T) tempDouble;
        } 
    }
    return t;
}</pre> 


 本文由用戶 dwd4 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!