想要声明带小数(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; }
}
答案 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