我构建了以下代码,试图将 reader[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");
注意 "C"
传递给 decimal.ToString
的货币格式说明符参数方法 - 参见 MSDN Decimal.ToString Method Documentation .
Convert.ToDecimal
如果 reader["BalanceAmt"]
,方法将抛出异常包含任何 Convert.ToDecimal
无法处理(非数字字符)。
你可能想放一个 try..catch
解决这个问题,或者如果您不想抛出异常,请使用 Decimal.TryParse
在 if
里面检查:
var balanceAmt = reader["BalanceAmt"];
if (decimal.TryParse(balanceAmt, out var myNum))
{
BalanceBox.Text = myNum.ToString("C");
}
关于c# - 如何将 reader.Read 字符串转换为 C# 中的货币格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47104109/