规则:
四舍六入五考虑。
五后非零就进一,
五后皆零看奇偶,
五前为偶应舍去,
五前为奇要进一。
c#:
Math.Round(new Decimal(1.2050),2) 1.2
Math.Round(new Decimal(1.2150),2) 1.22
Math.Round(new Decimal(1.2250),2) 1.22
Math.Round(new Decimal(1.2350),2) 1.24
Math.Round(new Decimal(1.2450),2) 1.24
Math.Round(new Decimal(1.2550),2) 1.26
Math.Round(new Decimal(1.2650),2) 1.26
Math.Round(new Decimal(1.2750),2) 1.28
Math.Round(new Decimal(1.2850),2) 1.28
Math.Round(new Decimal(1.2950),2) 1.3
oracle:
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;
--修约法则
/* 四舍六入五考虑,
// 五后非零就进一。
// 五后皆零看奇偶,
// 五前为偶应舍去,
// 五前为奇要进一。
*/