c# - 仅 For 循环显示最后一个循环 C#

标签 c#

如何获得显示每年的结果以及每年的年终值?

double investment_decimal = Double.Parse(txtAmount.Text);
double rate_decimal = Double.Parse(txtRate.Text);
double years = Double.Parse(txtSlideValue.Text);
years = Convert.ToDouble(txtSlideValue.Text);
double calculation = 0;

        //for loop
            for (int i = 1; i < years + 1 ; i++)
            {

                calculation = investment_decimal * Math.Pow((1 + rate_decimal / years), (i));
                txtCalculation.Text = Convert.ToString("Year " + i.ToString() +"\t" + "Year End Value " + calculation.ToString("C")).PadRight(10);
            }

最佳答案

您的代码在 UI 刷新之前对 UI 元素的文本进行多次赋值。这就是为什么只有最后一项仍然可见;当您执行循环时,其余部分将被覆盖。

您应该准备一个与文本框中的整个字符串相对应的字符串,并将其一次性放入txtCalculation.Text中:

StringBuilder sb = new StringBuilder();
for (int i = 1; i < years + 1 ; i++)
{

    calculation = investment_decimal * Math.Pow((1 + rate_decimal / years), (i));
    sb.AppendFormat("Year {0}\tYear End Value {1:C}\n", i, calculation);
}
txtCalculation.Text = sb.ToString();

请注意使用 AppendFormat 代替具有多个值的字符串连接运算符 +=。如果您想创建一个字符串,而不是附加到 StringBuffer,您可以使用 string.Format 或 C# 6 的内插字符串。

关于c# - 仅 For 循环显示最后一个循环 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49138279/

相关文章:

c# - 如何用新值更新 XML 节点?

c# - 如何在 C# 中获取当前的短日期时间格式?

c# - Linux 上的 Visual Studio 2019

c# - 存储过程未返回输出参数

c# - 在 map/2d 数组中查找最近的(几何上)非零值

c# - 如何从 Azure BLOB 存储下载文件

c# - 如何检查方法是否具有属性(使用接口(interface)、转换和抽象)

javascript - 在 angularjs 中找不到 url

c# - 尝试从 WebApi 下载文件时任务被取消

c# - Entity Framework 多次调用 SQL Server