[英]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.