2

テキスト ボックスの 10 進数値の形式は "0,0000" (, は小数点記号) です。小数点以下2桁だけにしたいです。これどうやってするの ?

私のモデルは次のとおりです。

 [DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)]
    public decimal DisplayOrder { get; set; }

意見:

@Html.EditorFor(model => model.DisplayOrder)

しかし、それは機能しません

前もって感謝します

4

2 に答える 2

3

MVC3 の 10 進形式の詳細については、このトピックを参照してください。asp.net mvc3 の 10 進形式

同様の問題のこのリンクは、 asp.net mvc3で10進数をフォーマットしています

上記のいずれも機能しない場合は、数値を文字列に変換してこの関数に渡すことができます。

 /// <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;
    }
于 2012-12-31T13:41:57.090 に答える
0

仕事をするために正規表現を使用できます。

以下のようにしてみてください。

[RegularExpression(@"^\d+.\d{0,2}$",ErrorMessage = "Price must can't have more than 2 decimal places")]
public decimal DisplayOrder { get; set; }

詳細については、こちらの正規表現ライブラリを確認してください

これがお役に立てば幸いです。

于 2012-12-31T12:30:33.123 に答える