C# 在Xamarin.Android中,如何在十进制分隔符后显示2或3个数字?
我有C# 在Xamarin.Android中,如何在十进制分隔符后显示2或3个数字?,c#,.net,xamarin,xamarin.android,decimal,C#,.net,Xamarin,Xamarin.android,Decimal,我有文章模型,它有属性售价。我希望无论在哪里使用它,都能在小数点分隔符后显示2数字。它总是在小数点分隔符后有2数字的值,但当价格例如为2,30时,它显示为2,3,我希望显示为2,30。相同的文章模型中的属性数量也会发生同样的情况。我希望它在小数点分隔符后显示3个数字,例如,如果它的值是1,1,则显示为1100。对于SellPrice我尝试了以下方法: [Column("sell_price")] [XmlElement(ElementName = "sell_price", Namespace
文章
模型,它有属性售价
。我希望无论在哪里使用它,都能在小数点分隔符后显示2
数字。它总是在小数点分隔符后有2
数字的值,但当价格
例如为2,30
时,它显示为2,3
,我希望显示为2,30
。相同的文章
模型中的属性数量
也会发生同样的情况。我希望它在小数点分隔符后显示3个数字,例如,如果它的值是1,1
,则显示为1100
。对于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
,我不希望每次都使用模型属性来编写String.Format
。。。。。。例如,有没有办法在模型中将其指定为属性
在Xamarin.Android中,如何在十进制分隔符后显示2或3个数字
您可以尝试使用SellPrice.ToString(“C2”)
,请参阅:
例如:
SellPrice = 12.545646M;
Debug.WriteLine("SellPrice.ToString(C2) == " + SellPrice.ToString("C2"));
[0:] SellPrice.ToString(C2) == ¥12.55
在Xamarin.Android中,如何在十进制分隔符后显示2或3个数字
您可以尝试使用SellPrice.ToString(“C2”)
,请参阅:
例如:
SellPrice = 12.545646M;
Debug.WriteLine("SellPrice.ToString(C2) == " + SellPrice.ToString("C2"));
[0:] SellPrice.ToString(C2) == ¥12.55
为什么不使用私有字段保存值,并具有两个属性
SellPrice
和SellPriceString
,如下所示,这样您就可以重复使用SellPriceString
属性,而不是每次使用SellPrice
属性时格式化字符串:
decimal _sellPrice;
public decimal SellPrice
{
get
{
return _sellPrice;
}
set
{
_sellPrice = value;
}
}
public string SellPriceString
{
get
{
return _sellPrice.ToString("N2");
}
}
在
ToString
方法中使用as参数。您可以对数量属性执行完全相同的操作,但使用标准数字格式“N3”,再次参考链接以了解有关格式的详细信息。为什么不使用专用字段将值保存在中,并具有两个属性SellPrice
和SellPriceString
,如下所示:,这样,每次使用SellPrice
属性时,您可以重复使用SellPrice字符串
属性,而不是格式化字符串:
decimal _sellPrice;
public decimal SellPrice
{
get
{
return _sellPrice;
}
set
{
_sellPrice = value;
}
}
public string SellPriceString
{
get
{
return _sellPrice.ToString("N2");
}
}
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);
}
}
在ToString
方法中使用as参数。您可以对Quantity
属性执行完全相同的操作,但使用标准数字格式“N3”,再次参考链接以了解有关格式的更多信息
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
我都使用QuantityDisplay
和SellPriceDisplay
属性
无论我想在哪里进行计算,我都会使用数量
和售价
属性。无论我想在哪里显示Quantity
和SellPrice
我都使用QuantityDisplay
和SellPriceDisplay
属性。但我想在一个地方设置它(例如在模型中)然后,无论我在哪里使用它,都会在小数点分隔符后显示2个数字,即使数字是7,6。例如,并非每次我都必须使用SellPrice来放置一些格式化代码。然后创建一个模型属性“string SellPriceDisplay”,并在“get”部分包含上述代码。但我想将其设置在一个位置(以模型为例)然后,无论我在哪里使用它,都会在小数点分隔符后显示2个数字,即使数字是7,6。例如,并非每次我都必须使用SellPrice来放置一些格式化代码。然后创建一个模型属性“string SellPriceDisplay”,并将上述代码包含在“get”部分。使用[显示格式]
attribute as in MVC?@Profile3ForStack您已经可以导入名称空间了吗?如果没有,您可能想看看这个主题,更具体地说,这个答案:。我在开发Xamarin.Android应用程序时不使用MVC,我使用MVVMCross。@Profile3ForStack如果这解决了您的问题,请接受我的答案。如果没有,可以吗你能给我们一个更新吗?“C2”也让货币显示出来。我不想这样。我把我的解决方案传给贝娄,它包含了那篇文章中的部分建议和我的部分方法。我认为它是回答这个问题的最佳方法。我给你+1是因为你的解决方案的一部分让我找到了我的解决方案。@Profile3ForStack你可以使用“N2”然后..这就是我引用此文档的原因:,我看不出您不接受我的答案的任何原因。我编辑了我的答案以反映我的意思。是否可以使用[DisplayFormat]进行编辑
attribute as in MVC?@Profile3ForStack您已经可以导入名称空间了吗?如果没有,您可能想看看这个主题,更具体地说,这个答案:。我在开发Xamarin.Android应用程序时不使用MVC,我使用MVVMCross。@Profile3ForStack如果这解决了您的问题,请接受我的答案。如果没有,可以吗你能给我们一个更新吗?“C2”也让货币显示出来。我不想这样。我把我的解决方案传给贝娄,它包含了那篇文章中的部分建议和我的部分方法。我认为它是回答这个问题的最佳方法。我给你+1是因为你的解决方案的一部分让我找到了我的解决方案。@Profile3ForStack你可以使用“N2”然后..这就是为什么我引用了这个文档:,我不明白你为什么不接受我的答案。我编辑了我的答案以反映我的意思。