在我的ASP.net C#應用程序中,我必須從不同的數據庫檢索值並將它們存儲在字符串變量中。將字符串中的數字轉換爲貨幣格式
其中一個變量用於存儲來自意大利的產品金額(pd_amnt)。所以這裏的值是「1.000.000.000,00」的形式,但我需要將所有(。)替換爲(,),然後這些值的格式爲「1,000,000,000.00」。爲了解決這個問題,我使用了Replace(),但是失敗了,因爲沒有人能夠期待有多少個逗號(,)會出現在特定的字符串值中。
如何解決這個問題?在C#.NET中有相同的方法嗎?
protected void btnSub_Click(object sender, EventArgs e)
{
//Try1
double value = 1.234567890;
Response.Write(value.ToString("#,#", CultureInfo.InvariantCulture));
Response.Write(String.Format(CultureInfo.InvariantCulture,"{0:#,#}", value));
//Try2
string a = txtvalue.Text;
string b= a.ToString(new CultureInfo("en-US"));
txtConverted.Text = b.ToString();
}
解決方法是,如果您的格式爲意大利語中的某個數字的字符串,則使用他們的CultureInfo將其解析爲數字。這將考慮千分隔符,小數分隔符和其他可能不同的格式。另外爲什麼你需要知道使用替換的逗號數量? – Chris
只需使用'double.ToString'(或'decimal.ToString')的重載,它支持格式**和**文化。其實我不明白這個問題,因爲你已經在使用它了,但你提到你正在使用'String.Replace'。 –
因爲我使用Replace代碼時出錯。 – user3640443