想象一下你得到了一個字符串(從某個地方你不能控制)。在該字符串中是十進制數字。您希望將逗號(即:將1234567.89轉換爲1,234,567.89)添加到該數字,同時保持整個字符串不變。數字前面的貨幣符號會有所不同,但逗號格式不必因文化而異。
有沒有簡單的方法在.NET中做到這一點?
如果不是一個簡單的方法,我會進一步詳細瞭解我的計劃。我們可以使用string.Substring()來獲取數字,因爲它總是在一些靜態文本之間。例如:
我們的字符串:
string s1 = "Blah Blah Blah. Total price: $1234567.89; Blah Blah Blah Blah"
我們可以在價格像這樣得到:
int start = s1.IndexOf("Total price: ") + 13;
int length = s1.IndexOf(";") - start;
string trim = s1.Substring(start, length);
抓住貨幣字符,離開休息:
char curr = trim[0];
string sAmount = s1.Substring(1, s1.Length);
現在我們可以格式化我們的小數:
decimal dAmount;
if (decimal.TryParse(sAmount, out dAmount))
{
string formattedPrice = curr + dAmount.ToString("N2");
Console.WriteLine(formattedPrice);
}
現在我可以只插入結果字符串返回到我原來的字符串,它應該去。寫這個問題的關鍵是這對我來說是非常討厭,我希望找到一個更好的方法來處理這個問題。
謝謝你的時間。我會在接下來的一個小時內刷新這一點,並會在這段時間內選擇一個答案。
絕對完美的格式化字符串。謝謝! – JoeB 2009-09-24 18:47:47