Просмотр рендера дополнительных десятичных знаков

1

Я разрабатываю приложение ASP.NET MVC 4, и я все еще новичок в MVC. Я заметил, что визуализировать дополнительные десятичные разряды, когда я использую Html.TextBox следующим образом.

    @Html.TextBox("OriginalContractAmt", Model == null ? 0 : Model.OriginalContractAmt, new { @readonly = true })

Свойство OriginalContractAmt - это поле NotMapped в модели, и представление показывает значение как 479.4000.

Я хотел бы сделать это с точностью до двух знаков после запятой. т.е. 479,40. Как мне его архивировать? Пробовал следовать в модели, и это не имело никакого значения.

    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:0.0#}")]

Заранее спасибо!

  • 1
    «Также Model.OriginalContractAmt содержит ожидаемое значение, равное 479,4» - как вы это проверили? (Если это через непосредственное окно, я подозреваю, что это может быть ошибка.)
  • 0
    Я проверил значение через окно просмотра на контроллере и в окне просмотра.
Показать ещё 4 комментария
Теги:
asp.net-mvc

3 ответа

2
Лучший ответ

Вы можете использовать Math.Round() для округления фигуры до двух знаков после запятой.

как:

@Html.TextBox("OriginalContractAmt", Model == null ? 0 : Math.Round(Model.OriginalContractAmt,2), new { @readonly = true })

Если вы не хотите округлить или закруглить, вы можете использовать усечение, как это разработал Ханс Пассант здесь:

Усечение Два десятичных знака без округления

1

Вы указываете неправильную маску:

  • 0 - обязательная цифра
  • # - необязательная цифра

Итак, десятичные места в этой маске {0:0.0#}:

  • 0: 1 обязательное десятичное место
  • #: 1 необязательное десятичное место

Итак, ваша маска должна быть {0:0.00}, т.е. Два обязательных десятичных знака.

1

Вы могли бы так обновиться, хотя это немного похоже на взлома:

@Html.TextBox("OriginalContractAmt", Model == null ? 0 : Decimal.Round(Model.OriginalContractAmt, 2), new { @readonly = true })

Я предполагаю, что округление будет прекрасным, так как вы потеряете точность при обратной передаче.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню