String Formatting with currency double values not displaying correctly.

asp.net-mvc, c#

Solution

You don't need to use `Html.DisplayFor` because it will return `MvcHtmlString` so the `string.Format` doesn't apply.

Just use the `string.Format` on your model:

@String.Format("{0:c}", Model.MonthlyMortgage)

Note you don't need the '$' sign anymore because the `{0:c}` will take care of it.

Problem

I'm using MVC3 with a detailed view that needs to display a formatted dollar amounts like $1,200.00. The controller is passing in a double value in this case for MonthlyMortgage to the view. The line of code below however, does not display the correct string formatting. What is displayed is $1200.00, and what I need is $1,200.00. I have tried: ``` $@String.Format("{0:c}", Html.DisplayFor(model => model.MonthlyMortgage)) ``` and I have tried this: ``` $@String.Format("{0:#,###,###,##0.000}", Html.DisplayFor(model => model.MonthlyMortgage)) ``` Can someone please enplane why this is not working?

Original source

Related problems