1

すべての小数値を小数点以下2桁(通貨)にするモデルの作成に取り組んでいます。これは私が考えていたものですが、明らかに機能しません。

public class Fees
{
    public decimal permitFee { set; get { return Math.Round(permitFee, 2); } }
    public decimal planReviewFee { set; get { return Math.Round(planReviewFee, 2); } }
    public decimal surchargeFee { set; get { return Math.Round(surchargeFee, 2); } }
    public decimal totalFee { get { return permitFee + planReviewFee + surchargeFee; } }
}

正しい出力値を取得するには、オブジェクトをどのように設定する必要がありますか?

4

3 に答える 3

4

私はあなたがそのようなプロパティを使用できるとは思わない(それ自体を返す)。プロパティの基になる変数を使用してみて、問題が解決するかどうかを確認してください。

C#set/getでのスタックオーバーフローエラー

于 2012-05-16T17:09:25.313 に答える
1

上記の私のコメントを参照して、値を整数として格納することを検討してください

public class Fees {  

private int permit;  
private int planReview;  
private int surcharge;  
public decimal permitFee { set { permit = (int) (value * 100); }; 
                           get { return permit / 100; } }  
public decimal planReviewFee { set { planReview = (int) (value * 100); } 
                               get { return planReview / 100; } }
public decimal surchargeFee { set { surcharge = (int) (value * 100); } 
                              get { return surcharge / 100; } }
public decimal totalFee { get { return permitFee + planReviewFee + surchargeFee; } }  }  }
于 2012-05-16T17:17:34.713 に答える
0

これが私が@tom_yes_tomの提案を取り入れてやったことです。

public class Fees
{
    private decimal permit;
    private decimal planReview;
    private decimal surcharge;

    public decimal permitFee
    {
        set { permit = Math.Round(value, 2); }
        get { return permit; }
    }
    public decimal planReviewFee 
    {
        set { planReview = Math.Round(value, 2); }
        get { return planReview; } 
    }
    public decimal surchargeFee 
    {
        set { surcharge = Math.Round(value, 2); }
        get { return surcharge; } 
    }
    public decimal totalFee 
    { 
        get { return permitFee + planReviewFee + surchargeFee; } 
    }
}
于 2012-05-16T18:18:04.360 に答える