我的Article
模型具有属性SellPrice
。我希望无论我在哪里使用它,在小数点分隔符后面都会显示2
个数字。它在小数点分隔符后的值始终为2
,但当price
为2,30
时,它显示为2,3
,我希望显示为2,30
}。对于同一Quantity
模型中的属性Article
,同样的事情发生了我希望它在小数点分隔符后面显示3个数字,例如,如果它的值1,1
显示为{{{ 1}}。对1,100
我尝试了以下内容:
SellPrice
但是[Column("sell_price")]
[XmlElement(ElementName = "sell_price", Namespace = "http://tempuri.org/DataSet1.xsd")]
[DisplayFormat(DataFormatString = "{0:C}")]
public decimal SellPrice { get; set; }
用红色加下划线,我不允许使用DisplayFormat
导入其命名空间。我猜它已被弃用了。为了在小数分隔符后显示System.ComponentModel.DataAnnotations
个数字,我甚至没有找到弃用的东西。我发现有很多方法可以使用3
,但我在项目的很多地方使用String.Format
和SellPrice
,我不希望每次使用模型时写入Quantity
的属性......有没有办法在模型中将其指定为属性,例如?
答案 0 :(得分:4)
为什么不使用私有字段来保存值,并且后面有两个属性SellPrice
和SellPriceString
,这样您就可以重新使用SellPriceString
属性而不是格式化每次要使用SellPrice
属性时都会出现字符串:
decimal _sellPrice;
public decimal SellPrice
{
get
{
return _sellPrice;
}
set
{
_sellPrice = value;
}
}
public string SellPriceString
{
get
{
return _sellPrice.ToString("N2");
}
}
在ToString
方法中使用Standard Numeric Format作为参数。您可以使用Quantity
属性完全相同,但使用标准数字格式" N3",再次参考链接以获取有关格式的更多信息。
答案 1 :(得分:0)
如何在Xamarin.Android中的小数点分隔符后显示2或3个数字?
您可以尝试使用SellPrice.ToString("C2")
,请参阅:Standard Numeric Format Strings。
例如:
SellPrice = 12.545646M;
Debug.WriteLine("SellPrice.ToString(C2) == " + SellPrice.ToString("C2"));
[0:] SellPrice.ToString(C2) == ¥12.55
答案 2 :(得分:0)
public decimal Quantity { get; set; }
public string QuantityDisplay
{
get
{
return String.Format("{0:0.000}", Quantity);
}
}
[Column("sell_price")]
[XmlElement(ElementName = "sell_price", Namespace = "http://tempuri.org/DataSet1.xsd")]
//[DisplayFormat(DataFormatString = "{0:0.00}")]
public decimal SellPrice { get; set; }
public string SellPriceDisplay
{
get
{
return String.Format("{0:0.00}", SellPrice);
}
}
无论我想在哪里进行计算,我都会使用Quantity
和SellPrice
属性。无论我想在哪里展示Quantity
和SellPrice
,我都会使用QuantityDisplay
和SellPriceDisplay
属性。