c# - 如何将 reader.Read 字符串转换为 C# 中的货币格式?

标签 c#

我构建了以下代码,试图将 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.TryParseif 里面检查:

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/

相关文章:

c# - MVC JsonResult 有数据,但浏览器没有

c# - Unity 3D 从一个天空盒淡入另一个天空盒

c# - 如何重命名序列化为 XML 但继续支持以前名称的枚举?

c# - Windows 应用商店应用程序中的单词发音 (Windows 8 Metro)

c# - HttpClient 中的电子邮件附件

c# - 如何简单地从 appsettings.json 读取

c# - 如何访问继承表单上的控件?

c# - 如何在返回任务的方法中调用异步方法?

c# - 如何只允许在文本框中输入 0 或 1?

c# - 获取 Enum<T> 值 描述