[英]How to convert reader.Read string to currency format in c#?
我內置下面的代碼,試圖轉換讀者[BalanceAmt]對貨幣,即$ 23,456.78。 我似乎無法得到它的工作。 它仍然返回“23456.782”任何想法?
while (reader.Read())
{
string MyNum = reader["BalanceAmt"].ToString();
String.Format("{0:#,###0}", MyNum);
BalanceBox.Text = (MyNum);
}
如果reader["BalanceAmt"]
返回一個string
那么為了讓您的數字格式工作,您需要在將其轉換為貨幣之前將其轉換為數字 - 即
var myNum = Convert.ToDecimal(reader["BalanceAmt"]);
BalanceBox.Text = myNum.ToString("C");
請注意傳遞給decimal.ToString
方法的"C"
貨幣格式說明符參數 - 請參閱MSDN Decimal.ToString 方法文檔。
如果reader["BalanceAmt"]
包含Convert.ToDecimal
無法處理的任何內容(非數字字符),則Convert.ToDecimal
方法將拋出異常。
您可能想在此周圍放置一個try..catch
,或者如果您不想拋出異常, Decimal.TryParse
在if
檢查中使用Decimal.TryParse
:
var balanceAmt = reader["BalanceAmt"];
if (decimal.TryParse(balanceAmt, out var myNum))
{
BalanceBox.Text = myNum.ToString("C");
}
while (reader.Read())
{
BalanceBox.Text = reader["BalanceAmt"].ToString("c");
}
在你的代碼String.Format("{0:#,###0}", MyNum);
MyNum 永遠不會改變...只是格式化。
請使用:
BalanceBox.Text = String.Format("{0:#,###0}", Convert.ToDouble(MyNum));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.