文本框十进制值具有以下格式" 0,0000" (,是小数点分隔符)。我只想要2位小数。我怎么能这样做?
我的模特有:
[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)]
public decimal DisplayOrder { get; set; }
查看:
@Html.EditorFor(model => model.DisplayOrder)
但它不起作用
提前致谢
答案 0 :(得分:3)
有关MVC3中十进制格式的详细信息,请参阅此主题 Decimal Format in asp.net mvc3
这个类似问题的链接 Formatting decimal in asp.net mvc3
如果以上都不起作用,您可以尝试将您的号码转换为字符串并将其传递给此函数。
/// <summary>
/// Formatting a given number to 0,00
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
string NumberFormatting(string number)
{
if (number.Contains(','))
{
string[] str = number.Split(',');
if (str[1].Length == 1)
{
number += "0";
}
}
else
{
number += ",00";
}
return DecreaseNumberDigits(number);
}
/// <summary>
/// To allow only two digits after the decimal mark
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
string DecreaseNumberDigits(string number)
{
if (number.Contains(','))
{
string[] str = number.Split(',');
if (str[1].Length > 2)
number = str[0] + "," + str[1].ToCharArray()[0].ToString() + str[1].ToCharArray()[1].ToString();
}
return number;
}
答案 1 :(得分:0)
您可以使用正则表达式来完成工作。
尝试如下。
[RegularExpression(@"^\d+.\d{0,2}$",ErrorMessage = "Price must can't have more than 2 decimal places")]
public decimal DisplayOrder { get; set; }
有关详细信息,请查看Regular Expression Library Here
我希望这会对你有所帮助。