1

想用小数(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; }


    }
4

3 回答 3

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();
            }
        }
    }
于 2012-05-25T06:54:00.100 回答
1

你可以为你想要实现的事情做这样的事情

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

您需要按照上面的代码更改属性的获取和设置。

于 2012-05-25T06:53:48.820 回答
-1

.net 十进制的精度是“28-29 位有效数字”,这对于这种情况来说已经足够了。关联

于 2012-05-25T06:55:55.293 回答