如何声明带小数的属性(19,4)

时间:2012-05-25 06:50:54

标签: c# decimal

想要声明带小数(8,4)的十进制属性。 但C#的默认值是十进制(18,2)。

    public class GroupItems
    {

        public GroupItems()
        {


        }

        public string ItemCode { get; set; }
        public string ItemDesc { get; set; }
        public decimal ItemPrice { get; set; }
        public decimal ItemAmount { get; set; }
        public double ItemQty { get; set; }


    }

3 个答案:

答案 0 :(得分:2)

你不能直接这样做。您可以使用set方法来实现此行为。

    private decimal _myProperty;

    public decimal MyProperty
    {
        get { return _myProperty; }
        set {
            if (value <= 99999999) //for 8 
            {
                _myProperty = Math.Round(value,4);
            }
            else
            {
                throw new InvalidOperationException();
            }
        }
    }

答案 1 :(得分:1)

对于你想要实现的目标,你可以做这样的事情

  decimal _ItemPrice; 
  public decimal ItemPrice 
  { get
    { return Math.Round(_ItemPrice, 2) } 
    set
    { _ItemPrice = value;}
  } 

您需要在上面的代码中对属性的获取和设置进行更改。

答案 2 :(得分:-1)

.net decimal的精度是“28-29有效数字”,这对于这种情况来说已经足够了。 link