[英]String.Format Explanation
我對理解如何為以下行生成格式感到困惑。
任何人都可以提供我,它如何呈現格式中的值,使用適當的逗號,放在圖中的正確位置。
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:$#,##0.00;($#,##0.00);Zero}
共有3組:
$#,##0.00
- 當參數(本例中為this.calcPayment(this._pv,1,2)
)為正時使用。 ($#,##0.00)
- 當arg為負數時使用 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的注釋中的鏈接讀取自定義數字格式字符串 ,確認三個以分號分隔的部分確實指定了正值,負值和零值的格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.