跳到内容
🛠️ToolsShed

信用卡还款计算器

计算还清信用卡债务所需的时间和总利息。

最低还款:max(余额的2%, $25)

目标还款期

关于此工具

信用卡还债计算器帮助您理解持有余额的真实经济成本,并制定切实可行的无债计划。输入当前余额、利率和计划的月度还款金额,该工具会精确计算偿还债务需要的月数,并显示您在这个过程中需要支付的总利息。由于信用卡利息每日复利计算,没有适当规划很容易低估还款所需的时间。

要使用计算器,只需输入信用卡余额、年利率(APR)和计划的月度还款额。该工具会立即生成还款时间表,显示您每月的余额减少情况和累积利息费用。这可以帮助您决定是否增加月度还款额来节省利息,或者评估当前还款策略是否符合您的预算。许多人发现,仅通过每月增加20至50美元的还款,就可以节省数千美元。

该工具对持有多张信用卡余额的人特别有用,您可以分别计算每张卡并优先确定应该先偿还哪些卡。了解您的还款时间表也会激励您加快还款速度,帮助您在迈向零余额的过程中避免累积新的债务。请记住,该计算假设利率固定且月度还款保持一致;如果您的发卡机构更改利率或您遗漏还款,实际时间表可能会有所不同。

常见问题

代码实现

def payoff_simulation(balance, annual_rate, monthly_payment):
    """
    Simulate credit card payoff month by month.

    Parameters:
        balance         - current balance owed
        annual_rate     - annual interest rate (e.g. 0.20 for 20%)
        monthly_payment - fixed payment made each month

    Returns dict with months, total_paid, and total_interest.
    """
    monthly_rate  = annual_rate / 12
    months        = 0
    total_paid    = 0.0
    total_interest = 0.0

    while balance > 0:
        interest   = balance * monthly_rate
        total_interest += interest
        balance   += interest
        payment    = min(monthly_payment, balance)
        balance   -= payment
        total_paid += payment
        months    += 1
        if months > 1200:          # safety cap (100 years)
            break

    return {
        "months":         months,
        "total_paid":     total_paid,
        "total_interest": total_interest,
    }


def required_payment(balance, annual_rate, months):
    """
    Calculate fixed monthly payment to clear a balance in exactly N months.
    Standard amortization formula: M = P * r / (1 - (1+r)^-n)
    """
    r = annual_rate / 12
    if r == 0:
        return balance / months
    return balance * r / (1 - (1 + r) ** -months)


def min_payment(balance, min_percent=0.02, min_floor=25.0):
    """Return the minimum payment (2% of balance, at least $25)."""
    return max(balance * min_percent, min_floor)


# Example: $5,000 balance at 20% APR, paying $150/month
result = payoff_simulation(5000, 0.20, 150)
print(f"Months to pay off:  {result['months']}")
print(f"Total paid:         ${result['total_paid']:,.2f}")
print(f"Total interest:     ${result['total_interest']:,.2f}")

# Required payment to pay off in 24 months
payment = required_payment(5000, 0.20, 24)
print(f"\nRequired for 24 months: ${payment:,.2f}/mo")

# Minimum payment scenario
mp = min_payment(5000)
mp_result = payoff_simulation(5000, 0.20, mp)
print(f"Minimum payment (${mp:.2f}/mo) takes {mp_result['months']} months")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.