簡體   English   中英

在C#中添加數字字符串並保留格式

[英]Add numeric strings in C# and preserve formating

我有一個問題,我需要添加兩個數字字符串“ $ 1,234.56”和“ $ 9,876.54”並獲得字符串“ $ 11,111.10”

我可以將字符串轉換為數字,執行加法運算,但是我不知道在ToString()結果保留格式的好方法。 我可以沿行添加幾個if語句:輸入中是否包含美元符號,小數點,百分號並相應地構造格式字符串,但這很笨拙,如果我們需要支持多個數字格式,它將失敗。

有誰知道如何添加數字字符串並保留格式?

編輯:回答問題。 在給定時間添加的所有字符串的格式是相同的,即:我不必擔心添加$和£(實際上目前不支持£),但是,當前支持幾種可能的格式,並且將來可能會添加更多:

$ 1,234.00; $的1,234; 1234; 1,234; 1,234.00; 1234%; 1234%; 1,234.00%

我建議使用第一個數字字符串作為模板,並從中創建數字格式:

var posshalves = firstNumericString.Split('.');
var fmthalves = new string[2] { posshalves[0], (posshalves.Length < 2 ? "" : "."+posshalves[1])};
var intfmt = Regex.Replace(fmthalves[0], @"[0-9]", "#");
intfmt = Regex.Replace(intfmt, @"#+", "#");
var decfmt = Regex.Replace(fmthalves[1], "[0-9]", "0");
var format = $"{intfmt}{decfmt}";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM