2013-05-13 87 views
2

我有剃刀視圖:LINQ和如何顯示貨幣

<td>@payments.Sum(p => p.Amount)</td> 

我希望它顯示爲貨幣等有「$」和最終兩位小數。

我認爲你通常會像{0:C}那樣。

我不知道如何將它融合到我所得到的中,因爲Sum沒有格式重載。

我需要用css類來做到這一點嗎?

+1

我認爲你需要使用'ToString'。這是一個值與格式的問題 - 對於格式,它是該值的表示形式,您需要調用「ToString」(或其他格式的方法)。 – 2013-05-13 01:30:20

回答

5

你可以這樣做:

<td>@String.Format("{0:C}", payments.Sum(p => p.Amount))</td> 
4
<td>@payments.Sum(p => p.Amount).ToString("C")</td> 

我覺得這是比String.Format一個稍微更有效的呼叫。請參閱answer

+1

'ToString()'和'String.Format'有趣的鏈接。爲了一致性,我傾向於在這種情況下使用'String.Format',因爲它處理'ToString()'會窒息的'null'引用。在這種情況下,它並不重要,因爲Sum()總是返回一個整數值而不會是null。 – Yuck 2013-05-13 01:39:02

+2

@Yuck。謝謝。我記得幾年前參加過一場活動,演講者將'ToString'與'Format'進行了比較,結果讓我印象深刻(並且有點驚訝)。我傾向於使用格式化字符串來支持'ToString',但它確實是一個微型優化。除非是數百萬次迭代,否則任何選項都可以。 – 2013-05-13 01:44:33