コード例 #1
0
    public static List <BackUnit> Compute(double amount, double yearRate, int months)
    {
        /// <summary>
        /// 一次性还本付息
        /// </summary>
        /// <param name="amount">投资金额</param>
        /// <param name="yearRate">年利率</param>
        /// <param name="months">投资期限,单位:月</param>
        /// <returns></returns>
        BackUnit unit        = new BackUnit();
        var      datalist    = new List <BackUnit>();
        var      rate        = yearRate;
        var      rateIncome  = amount * rate / 100 * (months / 12.0);
        var      totalIncome = amount + rateIncome;

        unit.Number     = 1;           // 期数
        unit.TotalRate  = rateIncome;  //Math.Round((Amount + TotalRate) * 100) / 100;// 总利息
        unit.TotalMoney = totalIncome; //TotalRate;// 总还款
        unit.A          = totalIncome; // 偿还本息  someNumber.ToString("N2");
        unit.B          = rateIncome;  // 偿还利息
        unit.C          = 0;           // 偿还本金
        unit.D          = 0;           // 剩余本金
        datalist.Add(unit);
        return(datalist);
    }
コード例 #2
0
    public static List <BackUnit> Compute(double amount, double yearRate, int months)
    {
        /// <summary>
        /// 等额本息法
        /// </summary>
        /// <param name="amountT">投资金额</param>
        /// <param name="yearRate">年利率</param>
        /// <param name="monthsx">投资期限,单位:月</param>
        /// <returns></returns>
        var monthRate = (yearRate) / 1200.0;     //年利率转为月利率
        var datalist  = new List <BackUnit>();
        var i         = 0;
        var a         = 0.0; // 偿还本息
        var b         = 0.0; // 偿还利息
        var c         = 0.0; // 偿还本金
                             //利息收益
        var totalRateIncome =
            (amount * months * monthRate * Math.Pow((1 + monthRate), months)) / (Math.Pow((1 + monthRate), months) - 1) - amount;
        var totalIncome = totalRateIncome + amount;
        var d           = amount + totalRateIncome;                // 剩余本金

        totalRateIncome = Math.Round(totalRateIncome * 100) / 100; // 支付总利息
        totalIncome     = Math.Round(totalIncome * 100) / 100;
        a = totalIncome / months;                                  //每月还款本息
        a = Math.Round(a * 100) / 100;                             //每月还款本息

        for (i = 1; i <= months; i++)
        {
            b = (amount * monthRate * (Math.Pow((1 + monthRate), months) - Math.Pow((1 + monthRate), (i - 1)))) / (Math.Pow((1 + monthRate), months) - 1);
            b = Math.Round(b * 100) / 100;
            c = a - b;
            c = Math.Round(c * 100) / 100;
            d = d - a;
            d = Math.Round(d * 100) / 100;
            if (i == months)
            {
                c = c + d;
                b = b - d;
                c = Math.Round(c * 100) / 100;
                b = Math.Round(b * 100) / 100;
                d = 0;
            }

            var unit = new BackUnit();
            unit.Number     = i;               // 期数
            unit.TotalRate  = totalRateIncome; // 总利息
            unit.TotalMoney = totalIncome;     // 总还款
            unit.A          = a;               // 偿还本息  someNumber.ToString("N2");
            unit.B          = b;               // 偿还利息
            unit.C          = c;               // 偿还本金
            unit.D          = d;               // 剩余本金
            datalist.Add(unit);
        }

        return(datalist);
    }
コード例 #3
0
    public static List <BackUnit> Compute(double amount, double yearRate, int months)
    {
        /// <summary>
        /// 按月付息到期还本
        /// </summary>
        /// <param name="amount">投资金额</param>
        /// <param name="yearRate">年利率</param>
        /// <param name="months">投资期限,单位:月</param>
        /// <returns></returns>
        var datalist = new List <BackUnit>();  //new Array(Deadline);     //

        double rateIncome    = amount * yearRate / 100 * (months / 12.0);
        double rateIncomeEve = (rateIncome / months);

        var total = amount + rateIncome;

        for (var i = 1; i < months; i++)
        {
            var unit = new BackUnit();
            unit.Number     = i;                                                                         // 期数
            unit.TotalRate  = rateIncome;                                                                //Math.Round((Amount + TotalRate) * 100) / 100;// 总利息
            unit.TotalMoney = total;                                                                     //TotalRate;// 总还款
            unit.A          = Math.Round(rateIncomeEve * 100) / 100;                                     // rateIncomeEve; 偿还本息  someNumber.ToString("N2");
            unit.B          = Math.Round(rateIncomeEve * 100) / 100;                                     // 偿还利息
            unit.C          = 0;                                                                         // 偿还本金
            unit.D          = Math.Round((amount * 1 + rateIncome * 1 - rateIncomeEve * i) * 100) / 100; // 剩余本金
            datalist.Add(unit);
        }

        datalist.Add(new BackUnit()
        {
            Number     = months,
            TotalRate  = rateIncome,
            TotalMoney = total,
            A          = amount + rateIncomeEve,
            B          = Math.Round(rateIncomeEve * 100) / 100,
            C          = amount,
            D          = 0
        });
        return(datalist);
    }