2012-11-15 47 views
2

我不知道我是否無法讀取documentation或需要喝另一杯咖啡。c#string.format刪除我的標記

我想格式化十進制到一些HTML。以下代碼的工作原理是它對字符串進行了格式化,但它刪除了添加的任何類型的引號或撇號標記。

private string FormatOutput1 = "{0:<span style='font-size: 14px;'>$0</span>.00}"; 
private string FormatOutput2 = "{0:<span style=\"font-size: 14px;\">$0</span>.00}"; 
private string FormatOutput3 = @"{0:<span style=""font-size: 14px;"">$0</span>.00}"; 
private string FormatOutput3 = "{0:<span style=\'font-size: 14px;\'>$0</span>.00}"; 
string.Format(FormatOutput, order.OrderTotal)); 

我總是導致(假設十進制是330)

<span style=font-size: 14px;>$330</span>.00 

缺乏引號的是打破所需的輸出。有沒有辦法解決這個問題或者我錯過了什麼。

+1

你爲什麼要包括在格式字符串的所有標記?這對我來說似乎是一個糟糕的做法,可能會搞亂'String.Format()'的格式化字符串。 –

+0

爲什麼不使用'format = @「 $ {0:0.000}」;'並將標記放在佔位符之前? –

回答

4

如果你真的只是想格式化小數那麼大括號之前移動HTML:

string FormatOutput = "<span style='font-size: 14px;'>$</span>{0:0.00}"; 

,以適應更新,你可以用\逃避它,但因爲它是一個字符串,你需要使用兩個\\也難逃;

string FormatOutput = "{0:<span style=\\'font-size: 14px\\;\\'>0</span>.00}"; 
+0

是的,歐普在閱讀手冊我認爲是錯誤的。儘管如此,您可能想要解除單引號。 – McGarnagle

+0

@dbaseman完成,好點。 – Candide

+0

抱歉我的代碼示例不正確。我已經更新了它,並輸出 – Kieran