Подтвердить что ты не робот

Форматирование десятичного числа в процентах для отображения в поле зрения?

В представлении MVC Razor десятичное поле должно отображаться как процент НО без знака процента. Например 2 или 2.5

Я понимаю, что это может быть из модели, и это будет что-то вроде:

    [AutoMapIgnore]
    [DisplayFormat(DataFormatString = "{0:F1}")]
    public virtual decimal OffPeakMarginPercent { get { return OffPeakMargin * 100; } }

Но не делает никакого эффекта вообще, в настоящее время он отображается как:

В настоящее время он отображается как 3.00000 или 2.50000.

Не могли бы вы посоветоваться.

Я высоко оцениваю ваше руководство и помощь.

Edit:

Если я буду форматировать, как показано ниже, он отобразится как 3.0 или 2.5

@row.OffPeakMarginPercent.ToString("0.0")
4b9b3361

Ответ 1

изменить

[DisplayFormat(DataFormatString = "{0:F1}")]

к

[DisplayFormat(DataFormatString = "{0:P2}")]

и удалите * 100 из геттера

как сказано в здесь формат для процентов в десятичном формате P not F

Ответ 2

Использование

[RegularExpression(@"^\d+(\.\d)?$", ErrorMessage = "Only one decimal point value allowed")]
[Range( 0.1,100)]
public virtual decimal OffPeakMarginPercent { get { return OffPeakMargin * 100; } }

Ответ 3

в MVC 5 вы можете изменить индекс View, если вы хотите просто показать два нуля после двойного значения

код Befor

  @Html.DisplayFor(modelItem => item.PRSPrice)

код после

 @Convert.ToDouble(item.PRSPrice.Value).ToString("0.00")

Благодарю вас