【问题标题】:How do I convert a string to currency with two decimal places in C#?如何在 C# 中将字符串转换为具有两位小数的货币?
【发布时间】:2011-02-12 15:09:13
【问题描述】:

如何将以下结果格式化为带 2 位小数的货币?

string query2 = "SELECT SUM (Price) FROM Bill";
OleDbDataAdapter dAdapter2 = new OleDbDataAdapter(query2, DBconn);
DataTable source = new DataTable();
dAdapter2.Fill(source);
TotalValueLabel.Text = source.Rows[0][0].ToString();

【问题讨论】:

    标签: c# sql string ms-access


    【解决方案1】:
    TotalValueLabel.Text = source.Rows[0][0].ToString("c");
    

    【讨论】:

    • 当我尝试添加“C”时出现错误“方法'ToString'没有重载需要'1'争论
    • 错误信息是什么?您是否在“c”周围加上引号?
    • 错误信息如上。是的,包括“C”
    • 哎呀,必须先将其转换为小数:TotalValueLabel.Text = ((decimal)source.Rows[0][0]).ToString("c");
    • 顺便说一句,如果此字段允许为 null,您应该适当地更改代码。
    【解决方案2】:

    一些ToString 重载接受允许您指定输出配置的格式字符串(这取决于类)。对于货币(例如,以小数形式存储),您可能需要指定 currencyValue.ToString("C"),它会考虑默认语言环境。

    注意,如果您需要其他货币的结果,您可能还需要传递区域设置说明符。

    更多详情请见http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx

    【讨论】:

    • 当我指定 .ToString("C") “方法 'ToString' 没有重载需要 '1' 争论”时出现此错误“
    • @pacheco 请参阅特定类的 ToString 文档。只有ToString() 的形式在object 上定义。其他重载是特定于类型的(例如,在 decimalFooBar 等上定义)
    • 看起来@Mike C. 先找到了你。祝你好运。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-15
    相关资源
    最近更新 更多