簡體   English   中英

為什么我的代碼沒有在 RichTextBox 中為 windows forms Visual Studio 顯示 output? C#

[英]Why is my code not displaying output in RichTextBox for windows forms Visual Studio? C#

無法弄清楚我在這里做錯了什么,以使我的 output 看起來像示例。 我附上了示例 output + 我得到的 output。 我沒有找到任何錯誤或錯誤,但這是我的循環做錯了嗎? 我對編程相當缺乏經驗,如果這是一個簡單的錯誤,我深表歉意。

理想output

我的 output

private double CalcPayment(double principal, double rate, int term)
            {
               double payment = (principal * rate) / (1 - (Math.Pow(rate + 1, -term)));
               return payment;
            }
    
            private void btnCalc_Click(object sender, EventArgs e)
            {
                //Input
                double principal = Convert.ToDouble(txtPrincipal.Text);
                double rate = Convert.ToDouble(txtRate.Text);
                int term = Convert.ToInt32(txtTerm.Text);
    
                //Processing
    
                rate /= 100;
                double balance = principal;
                double annualPayment = CalcPayment(principal, rate, term);
    
                rtbOut.Text = "Village of Muddy Bottom".PadLeft(15) + "\n" + "Bond Payment Schedule".PadLeft(16) + "\n";
    
                int yearsCounter;
                double annualInterest;
                double principalPaid;
                double totalInterest = 0;
    
                for (yearsCounter = 1; yearsCounter <= term; yearsCounter++)
                {
                    annualInterest = balance * rate;
                    principalPaid = annualPayment - annualInterest;
                    balance -= principalPaid;
                    totalInterest += annualInterest;
    
                    rtbOut.Text = term.ToString().PadLeft(5) + balance.ToString("c").PadLeft(20) + annualInterest.ToString("c").PadLeft(30) + principalPaid.ToString("c").PadLeft(40) + "\n";
                }
    
    
                //Postprocessing/Output
    
                rtbOut.Text = "Total" + totalInterest.ToString("c").PadLeft(40);
                lblPayment.Text = annualPayment.ToString("c");
            }

問題是您正在覆蓋行中的現有文本

rtbOut.Text = "Total" + totalInterest.ToString("c").PadLeft(40);

這就是為什么您只顯示總數。 你可以通過串聯來解決這個問題。 只需在將文本分配給 UI 控件的任何位置添加一個“+”即可。

如果您對lblPayment.Text也有問題,請執行相同操作

private double CalcPayment(double principal, double rate, int term)
{
    double payment = (principal * rate) / (1 - (Math.Pow(rate + 1, -term)));
    return payment;
}

private void btnCalc_Click(object sender, EventArgs e)
{
    //Input
    double principal = Convert.ToDouble(txtPrincipal.Text);
    double rate = Convert.ToDouble(txtRate.Text);
    int term = Convert.ToInt32(txtTerm.Text);

    //Processing

    rate /= 100;
    double balance = principal;
    double annualPayment = CalcPayment(principal, rate, term);

    rtbOut.Text = "Village of Muddy Bottom".PadLeft(15) + "\n" + "Bond Payment Schedule".PadLeft(16) + "\n";

    int yearsCounter;
    double annualInterest;
    double principalPaid;
    double totalInterest = 0;

    for (yearsCounter = 1; yearsCounter <= term; yearsCounter++)
    {
        annualInterest = balance * rate;
        principalPaid = annualPayment - annualInterest;
        balance -= principalPaid;
        totalInterest += annualInterest;

        rtbOut.Text += term.ToString().PadLeft(5) + balance.ToString("c").PadLeft(20) + annualInterest.ToString("c").PadLeft(30) + principalPaid.ToString("c").PadLeft(40) + "\n";
    }


    //Postprocessing/Output

    rtbOut.Text += "Total" + totalInterest.ToString("c").PadLeft(40);
    lblPayment.Text = annualPayment.ToString("c");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM