[英]How to format a number into comma only without decimal point but already round into non decimal point using C#
我想将此ActualSize属性格式化为非小数点但以逗号分隔。 例如。 我有1000.65的值将其转换为1,001而不是1,000
例:
public class Price
{
public int Id { get; set; }
public string Name { get; set; }
// I want format this ActualSize property into Non Decimal point but have a comma separated. Eg. I have the value 1000.65 convert it into 1,001 and not 1,000
public long? ActualSize { get; set; }
}
public List<Product> ListProduct()
{
List<Product> listProducts = new List<Product>();
listProducts.Add(new Product {Id = "1", Name = "Product 1" ActualSize = 1000.65 });
listProducts.Add(new Product {Id = "2", Name = "Product 2", ActualSize = 2443.76 });
return listProducts;
}
希望这是你正在寻找的:
string formatedOp = 2319000.6.ToString("#,##,##"); // 2,319,001
这是一个有效的例子 。
但是我仍然没有得到你将要处理long?
事情long?
如果出于任何特定原因这意味着请包括原因,以便我可以更新我的答案。 无论如何你不能用逗号存储值,但你可以用逗号打印它们,就像我在上面的例子中所做的那样。
根据修改后的问题进行更新:因此,您的输入包含一些双精度值,并且您希望它们具有指定的格式。 我可以建议一个选项,不知道它是否对你有帮助。 无论如何你可以尝试:
在属性中进行以下更改: - 更改多long?
double?
因为你的输入是双倍的。 - 在类中包含一个readonly字符串属性,该属性返回特定的字符串。 - 设置double值时将更新哪个。 简而言之,在应用以下更改后,类将如下所示:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
private string _ActualSizeStr;
private double? _ActualSize;
public string ActualSizeStr
{
get { return _ActualSizeStr; }
}
public double? ActualSize
{
get { return _ActualSize; }
set
{
_ActualSize = value;
if (value.HasValue)
{
_ActualSizeStr = value.Value.ToString("#,##,##");
}
}
}
}
因此,当您为ActualSize
分配值(让它为2319000.6
)时, _ActualSizeStr
将使用所需的值( 2,319,001
)进行更新,以便在检索或使用这些值时,可以使用ActualSizeStr
代替ActualSize
。
您可以像这样使用String.Format():
string areaSize = String.Format("{0:n0}", AreaSize);
您需要使用.ToString重载格式化字符串。
如果您需要空格,则需要一个自定义格式字符串,因为.NET中没有任何内容可以完全按照您指定的内容进行操作。
我实际上出于某种原因认为.NET内置了一个逗号格式,但我没有看到它,如果你不需要以下空格:
1234897.11m.ToString("{0,0}}");
但是,如果你确实需要这些空间,那就更难了(感谢你回答这篇文章 )。
using System;
using System.Globalization;
var nfi = (NumberFormatInfo)CultureInfo.InvariantCulture.NumberFormat.Clone();
nfi.NumberGroupSeparator = " ,";
1234897.11m.ToString("#,0", nfi);
我刚注意到你想要它在你的财产内:
public string FormatedAreaSize
{
get{return this.AreaSize?.ToString(...);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.