字符串.格式的解释

本文关键字:解释 格式 字符串 | 更新日期: 2023-09-27 18:08:38

我不太明白下面一行的格式是如何生成的。

有谁能告诉我,它是如何在格式中呈现值的,用适当的逗号,放在图中的正确位置。

writer.Write(string.Format("Your Estimated Loan Paymement+will be {0:$#,##0.00;($#,##0.00);Zero}", + this.calcPayment(this._pv,1,2) ));

这里calcPayment()是一个返回数值的函数。例如,如果返回2000.33,则输出为$ 2003.33。

我知道它正在格式化,但是怎么做呢?

谢谢。

字符串.格式的解释

分解格式字符串:{0:$#,##0.00;($#,##0.00);Zero}

有3组:

  1. $#,##0.00 -当参数(this.calcPayment(this._pv,1,2)
  2. ($#,##0.00) -当arg为负时使用
  3. Zero -当arg为零时使用

#是数字占位符,0是零占位符(填充)。

格式字符串部分(如$#,##0.00)中的逗号告诉它是否需要放置逗号(或者,正如@svick正确指出的那样,"组分隔符")。这里有一个不错的参考,它描述了页面中间的格式代码:http://blog.stevex.net/string-formatting-in-csharp/

发生的是Format方法(函数)使用格式字符串作为模板,然后添加您提供的额外数据。

我猜它是这样的:

0: //this is telling it that this is the zero placeholder in the format string
$#,##0.00 //this is what happens if the value is above zero
($#,##0.00) //this is for values below zero
Zero //literal "Zero" output if the value is equal to zero

编辑-阅读@Jon评论中的链接中的自定义数字格式字符串,确认三个分号分隔的部分确实是指定正、负和零值的格式。