我对理解如何为以下行生成格式感到困惑。
任何人都可以提供我,它如何以格式呈现值,使用适当的逗号,放在图中的正确位置。
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,那么它将被输出为$ 2,003.33。
我知道它正在进行格式化,但是怎么做?
谢谢。
答案 0 :(得分:7)
分解格式字符串:{0:$#,##0.00;($#,##0.00);Zero}
共有3组:
$#,##0.00
- 在参数(this.calcPayment(this._pv,1,2)
时使用
在这种情况下)是积极的。($#,##0.00)
- 当arg为负时使用Zero
- 当arg为零时使用 #
是一个数字占位符,0
是零占位符(填充)。
有关详细信息,请参阅this。
答案 1 :(得分:2)
格式字符串部分中的逗号(例如$#,##0.00
)告诉它是否放置逗号(或者,如@svick正确陈述,“组分隔符”),如果需要。这是一个体面的参考,描述格式代码中间的代码:http://blog.stevex.net/string-formatting-in-csharp/
正在发生的事情是Format
方法(函数)使用格式字符串作为模板,然后添加您提供的其他数据。
答案 2 :(得分:0)
我会猜测它是这样的:
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的评论链接中读取custom numeric format strings确认三个以分号分隔的部分确实指定了正值,负值和零值的格式。