1

私は次のようなMoneyクラスを持っています(簡略化):

public class Money
{
    private readonly decimal _amount;

    public decimal Amount
    {
        get { return _amount; }
    }

    public Money(decimal amount)
    {
        _amount = amount;
    }

    public override string ToString()
    {
        return _amount.ToString("c2");
    }

    public static implicit operator Money(decimal value)
    {
        return new Money(value);
    }
}

私のRazorビューでは、次のような金額の値をレンダリングしたいと思います。

<p>This is my money value:
    @Model.MyNullableMoneyValue
</p>

ビューを実行すると、Money構造体のToString()メソッドを使用すると、「$ 10.00」のようになりますが、小数でToString()を呼び出しているかのように、つまり「10.0000」のようにレンダリングされます。

ToString()を自分で追加すると、問題が修正されます。

<p>This is my money value:
    @Model.MyNullableMoneyValue.ToString()
</p>

なんで?どうしたの?

4

0 に答える 0