如何在DataGrid中使用$格式化货币?

5

我希望在我的DataGrid中格式化货币值,使它们以美元符号($)开头。

我该怎么做?


很抱歉,但我认为我理解了这个问题。她试图将特定列中的单元格格式化为数字格式。@Nikki196 - 如果是这样,请参见http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.datagridcolumn.itemstyle.aspx。虽然我必须说,添加更多细节并列出您已经尝试过的内容会有所帮助。请查看FAQ,如“关闭为不是真正的问题”块所示。 - David
1
我同意@DavidStratton的观点。这不是一个好问题,而且措辞不当。但它是可以回答的。不过我想知道这是WinForms、ASP .NET还是WPF。 - Yuck
@Nikki196 - 我看了你的另一个问题,我认为你可以参考John Skeet关于如何撰写完美问题的博客文章,这对我们提供帮助会非常有帮助。如果我们有足够的信息来回答问题,那么它会变得容易得多。http://msmvps.com/blogs/jon_skeet/archive/2010/08/29/writing-the-perfect-question.aspx - David
@Yuck 非常感谢您的评论和编辑。是的,我正在开发WinForms。 - Nikki196
@DavidStratton 谢谢,我会看看这篇帖子的。 - Nikki196
2个回答

3
如果您想将数据显示为货币格式,或者仅仅需要在数据前添加"$"符号,使得1.49显示为$1.49, 那么有几种方法可以实现。在DataGrid控件(Web)上,您可以设置DataFormatString属性。其中一种选项是在BoundColumn中将其设置为"c"表示货币。如果您的网络服务器的CultureInfo设置为en-US,则该选项将起作用。请参考DataFormatStringCultureInfo了解更多信息。
<asp:BoundColumn DataField="CurrencyValue" 
                 HeaderText="Price"
                 DataFormatString="{0:c}">

另一种选择是使用CustomFormatString,这使您对其显示方式有更精细的控制。假设您总是希望它恰好在小数点右侧三位且恰好在左侧两位,则可以使用“{0:$00.000}”。有关数字的自定义数据格式字符串的更多信息,请点击此处:http://msdn.microsoft.com/en-us/library/0c899ak8.aspx。由于您正在使用WinForms(抱歉,我刚刚重新阅读了评论),因此您将使用相同的技术,但将其应用于列的DefaultCellStyle,如此处所示:http://msdn.microsoft.com/en-us/library/f9x2790s.aspx
dataGridView1.Columns["UnitPrice"].DefaultCellStyle.Format = "c";

2
此外,如果您正在寻找一种基于CultureInfo的特定于文化的单元格格式化方式,则可以使用DataGridCellStyle的FormatProvider属性。 在WinForms中:
dataGridView1.Columns["MoneyValue"].DefaultCellStyle.Format = "c";
dataGridView1.Columns["MoneyValue"].DefaultCellStyle.FormatProvider = 
System.Globalization.CultureInfo.CreateSpecificCulture("es-CO");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接