/* @tier medium @module mg @transform msg-gateway-util */ /* * mg_cu_0006.c - 전문게이트웨이 공통 유틸리티 (plain C) [tier=medium] */ #include "mg_cu_0006.h" #include /* 수수료: 12개월 균등분할 잔액에 대한 단리 이자 합 */ long mg_cu_0006_fee(long amount, int rate_bp) { long total = 0, principal; int m; if (amount <= 0 || rate_bp < 0) return 0; principal = amount / 12; for (m = 1; m <= 12; m++) { long bal = amount - principal * (m - 1); total += bal * (long)rate_bp / 120000L; } return total; } /* 잔돈 재분배 반올림: 잔여의 2배가 unit 이상이면 올림 */ long mg_cu_0006_round_unit(long amount, long unit) { long base, rem; if (unit <= 0) return amount; base = (amount / unit) * unit; rem = amount - base; return (rem * 2 >= unit) ? base + unit : base; } /* 분류: 최상위(선두) 숫자 1~9 */ int mg_cu_0006_classify(long amount) { long v = amount < 0 ? -amount : amount; if (v == 0) return 0; while (v >= 10) v /= 10; return (int)v; }