int、double、decimal 的數字格式可以通過使用標準數字格式化程式來簡單地實作,例如假設 Culture 是“en-GB”:
int value = 1000;
Console.WriteLine(value.ToString("C0")); // Would output £1,000
但是我想知道是否有一種簡單的方法可以將字串格式化為與上述相同的效果。例如:
string amount = "£2000"; // Would want to format to "£2,000"
有沒有辦法格式化這個字串,以便在正確的位置添加千位分隔符?
鑒于它是一個字串,如果不事先將字串轉換為數字資料型別,我認為數字格式不會起作用:
var result = Int32.Parse("£2000", NumberStyles.AllowCurrencySymbol, new CultureInfo("en-GB"));
Console.WriteLine(result.ToString("C0", new CultureInfo("en-GB"))); // Outputs £2,000
但是,將字串轉換為 int 然后再轉換回字串有點冗長。鑒于起始字串具有貨幣符號,是否有更簡單的方法來執行此操作?
uj5u.com熱心網友回復:
鑒于它是一個字串,如果不事先將字串轉換為數字資料型別,我認為數字格式不會起作用
確實。
鑒于起始字串具有貨幣符號,是否有更簡單的方法來執行此操作?
不會。而且我嚴重懷疑開發者社區是否會添加和/或歡迎這樣的功能。這種功能的正式規范將是復雜性的噩夢。
當然,在您的特定情況下,如果您確定您的字串始終由“貨幣符號 不帶逗號或句點的數字序列”組成,您可以開發一個針對您的用例優化的基于字串的解決方案(例如,正則運算式)。但是,我認為您當前的解決方案既可讀又可維護,保持這種方式對您未來的自己有利。如果您多次需要它,請將其提取到一個方法中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/456709.html
