C# 从模型中获取特定的十进制长度

C# 从模型中获取特定的十进制长度,c#,model,C#,Model,我正在创建一个模型,在这个模型中,我希望所有的十进制值最终都是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 deci

我正在创建一个模型,在这个模型中,我希望所有的十进制值最终都是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; } }
}

我应该如何设置对象以获得正确的输出值?

我不相信您可以使用这样的属性返回自身。尝试为属性使用基础变量,看看是否可以解决问题


我不相信你能用这样的财产还自己。尝试为属性使用基础变量,看看是否可以解决问题


见上面的注释,并考虑将值存储为整数

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; } }  }  }

见上面的注释,并考虑将值存储为整数

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; } }  }  }

以下是我接受@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; } 
    }
}

以下是我接受@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; } 
    }
}

您是将它们用于某些计算,还是仅显示给用户?如果您有严格的要求将货币值限制在小数点后两位,您将希望将它们存储为整数,并在您希望保留的最后一位小数处结束。例如,$100.42将作为10042存储在整数变量中。否则,由于基数为10的分数的转换,分数值的存储将始终不准确。如果get不是空的,集合访问器是否可以为空?您将使用它们进行一些计算,还是仅向用户显示?如果您有严格要求,将货币值限制在小数点后两位,您将希望将它们存储为以要保留的最后一位小数结尾的整数。例如,$100.42将作为10042存储在整数变量中。否则,由于基数为10的分数的转换,分数值的存储将始终不准确。如果get不是空的,集合访问器是否可以为空?因此,您完全按照我的建议执行了=所以,你完全按照我的建议做了=