銀行家舍入算法規則描述:四捨六入五考慮,五後非零就進一,五後爲零看奇偶,五前爲偶應捨去,五前爲奇要進一
函數過程:
CREATE OR REPLACE
FUNCTION ROUND2 (P1 IN NUMBER, P2 IN NUMBER) RETURN NUMBER AS
BEGIN
IF TRUNC (P1, P2 + 1) <> P1
OR SUBSTR (P1 * POWER(10, P2 + 1) ,- 1) <> '5'
OR MOD (
SUBSTR (P1 * POWER(10, P2 + 1) ,- 2, 1),
2
) = 1 THEN
RETURN ROUND (P1, P2);
ELSE
RETURN TRUNC (P1, P2);
END
IF;
END;
測試:
select ROUND2(3.5, 0) from dual;結果爲:4
select ROUND2(4.5, 0) from dual; 結果爲:4