我寫的一個,判斷一個整數是否能被1除盡的算法,看是否能完善下
--ADD BY FWANG 2011.1.6 判斷總箱件數是否能平分 ,能返回1,不能則返回-1
FUNCTION IS_ROUND_ASN_LINE_SETS(P_QUANTITY_SHIPPED IN NUMBER,NUM_OF_CONTAINERS IN NUMBER)
RETURN NUMBER IS
V_RESULT NUMBER;
V_RESULT_TEM NUMBER;
BEGIN
IF P_QUANTITY_SHIPPED > 0 AND NUM_OF_CONTAINERS > 0 THEN
V_RESULT := ROUND(1/(NUM_OF_CONTAINERS/P_QUANTITY_SHIPPED),8); --四舍五入8位小數
V_RESULT_TEM := ROUND(1/(NUM_OF_CONTAINERS/P_QUANTITY_SHIPPED),4); --四舍五入4位小數
IF V_RESULT = V_RESULT_TEM THEN --比較兩位小數是否相等,從而得出每套箱數是否能平分
V_RESULT := 1;
ELSE
V_RESULT := -1;
END IF;
END IF;
RETURN V_RESULT;
END;
FUNCTION IS_ROUND_ASN_LINE_SETS(P_QUANTITY_SHIPPED IN NUMBER,NUM_OF_CONTAINERS IN NUMBER)
RETURN NUMBER IS
V_RESULT NUMBER;
V_RESULT_TEM NUMBER;
BEGIN
IF P_QUANTITY_SHIPPED > 0 AND NUM_OF_CONTAINERS > 0 THEN
V_RESULT := ROUND(1/(NUM_OF_CONTAINERS/P_QUANTITY_SHIPPED),8); --四舍五入8位小數
V_RESULT_TEM := ROUND(1/(NUM_OF_CONTAINERS/P_QUANTITY_SHIPPED),4); --四舍五入4位小數
IF V_RESULT = V_RESULT_TEM THEN --比較兩位小數是否相等,從而得出每套箱數是否能平分
V_RESULT := 1;
ELSE
V_RESULT := -1;
END IF;
END IF;
RETURN V_RESULT;
END;
問下,紅色字體部分是否可以再優化下.
注意:
整數值 = NUM_OF_CONTAINERS/P_QUANTITY_SHIPPED
本文由用戶 wf1006 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!