C# Format()将字符串转换为for循环内部的字符串时,使用逗号对字符串进行编号

C# Format()将字符串转换为for循环内部的字符串时,使用逗号对字符串进行编号,c#,for-loop,string-formatting,C#,For Loop,String Formatting,我已经知道如何像我需要的那样用逗号格式化数字字符串,事实上,我正在尝试将公认的答案应用到我的案例中 然而,据我所见,它处理预先确定的字符串变量。在我的例子中,它正在运行for循环,该循环将双精度值转换为字符串,并将输出显示为表行 for (double i = 1; i <= years; i++) { //number of years //future value richTextBoxResults.T

我已经知道如何像我需要的那样用逗号格式化数字字符串,事实上,我正在尝试将公认的答案应用到我的案例中

然而,据我所见,它处理预先确定的字符串变量。在我的例子中,它正在运行for循环,该循环将双精度值转换为字符串,并将输出显示为表行

for (double i = 1; i <= years; i++)
{
                              //number of years         //future value
   richTextBoxResults.Text += i.ToString().PadLeft(3) + (presentValue * Math.Pow(((interestRate / 100 / periods) + 1), (periods * i))).ToString("$#.00").PadLeft(28) + "\n";
}
我尝试在.ToString($#.00)方法之后的循环中使用Format(),但是,我得到了一个错误35;。然而,我不确定如何将这些答案应用到我的案例中

我正在考虑创建一个字符串变量,它将临时存储值并格式化它。但我想知道是否有更优雅的解决方案

我仍然可以应用Format()方法(可能在不同的角度下),所以我的输出如下所示

Years                                Future Value
__________________________________________________
  1                                  $1,234,567.89
  2                                  $2,345,678.90
  3                                  $3,456,789.01

还是我需要改变我的方法

您的代码不可读,这使您很难理解问题。在
之前有一个额外的
。ToString

Math.Pow(((interestRate / 100 / periods) + 1), (periods * i)).ToString("$#.00").PadLeft(28)

您可以使用
“$0,#.00”
应用千位分隔符。

您的代码不可读,这使您很难理解问题。在
之前有一个额外的
。ToString

Math.Pow(((interestRate / 100 / periods) + 1), (periods * i)).ToString("$#.00").PadLeft(28)

您可以使用
“$0,#.00”
应用千位分隔符。

您必须调用
格式()
作为
字符串的静态方法
类:

string.Format(/*YourParameters*/)

您必须调用
Format()
作为
string
类的静态方法:

string.Format(/*YourParameters*/)

要使代码可读,请将数据放入变量中。然后像这样格式化它

 var _value = presentValue * Math.Pow(((interestRate / 100 / periods) + 1), (periods * i));
 richTextBoxResults.Text+= i.ToString().PadLeft(3) + String.Format("{0:0.00}",_value) .PadLeft(28) ;

要使代码可读,请将数据放入变量中。然后像这样格式化它

 var _value = presentValue * Math.Pow(((interestRate / 100 / periods) + 1), (periods * i));
 richTextBoxResults.Text+= i.ToString().PadLeft(3) + String.Format("{0:0.00}",_value) .PadLeft(28) ;

是的,我试着让我的台词更易读,但换成一行会让人更困惑,所以我决定保持原样。我还应用了你的底部解决方案,它成功了!一旦限额用完,我将立即接受。@VadzimSavenok您会后悔在两个月后阅读了这行代码。这需要更多的时间去理解。我强烈建议您将计算分为多行。可读性,可读性,然后可读性。不只是为了让其他人阅读你的代码,也为了让你能够在以后的阶段维护和修改它(如果必要的话)。我现在肯定会应用它,只是因为我有一个单词包装,所以它对我来说非常可读。但我明白你的意思。是的,我试着让我的台词更可读,但换成一行会让人更困惑,所以我决定保持原样。我还应用了你的底部解决方案,它成功了!一旦限额用完,我将立即接受。@VadzimSavenok您会后悔在两个月后阅读了这行代码。这需要更多的时间去理解。我强烈建议您将计算分为多行。可读性,可读性,然后可读性。不只是为了让其他人阅读你的代码,也为了让你能够在以后的阶段维护和修改它(如果必要的话)。我现在肯定会应用它,只是因为我有一个单词包装,所以它对我来说非常可读。但我明白你的意思。我会把你的建议应用到我的代码中。虽然用户先回答了我的问题,但你仍然应该得到一个upvote=)谢谢@VadzimSavenokI将把你的建议应用到我的代码中。虽然用户先回答了我的问题,但你仍然应该得到一张upvote=)谢谢@VadzimSavenok