簡體   English   中英

String.Format解釋

[英]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組:

  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的注釋中的鏈接讀取自定義數字格式字符串 ,確認三個以分號分隔的部分確實指定了正值,負值和零值的格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM