如何在Xamarin.Android?

时间:2018-02-07 09:15:24

标签: c# .net xamarin xamarin.android decimal

我的Article模型具有属性SellPrice。我希望无论我在哪里使用它,在小数点分隔符后面都会显示2个数字。它在小数点分隔符后的值始终为2,但当price2,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.FormatSellPrice,我不希望每次使用模型时写入Quantity的属性......有没有办法在模型中将其指定为属性,例如?

3 个答案:

答案 0 :(得分:4)

为什么不使用私有字段来保存值,并且后面有两个属性SellPriceSellPriceString,这样您就可以重新使用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);
    }
}

无论我想在哪里进行计算,我都会使用QuantitySellPrice属性。无论我想在哪里展示QuantitySellPrice,我都会使用QuantityDisplaySellPriceDisplay属性。