0

这是我的例子

在此处输入图像描述

我想删除$但格式还是一样?我怎么可能做到这一点?

这是我的代码datagridview

dataGridView1.Columns["Amount"].DefaultCellStyle.Format = "c2";

预期产出

(2,138,870,900.11)
19,921,759.23
..and so on
4

4 回答 4

4

如果您仍然需要括号来表示否定,请尝试:

dataGridView1.Columns["Amount"].DefaultCellStyle.Format = "#,0.00;(#,0.00)";

或者:

var provider = (CultureInfo)CultureInfo.CurrentCulture.Clone();
provider.NumberFormat.NumberNegativePattern = 0;
dataGridView1.Columns["Amount"].DefaultCellStyle.FormatProvider = provider;
dataGridView1.Columns["Amount"].DefaultCellStyle.Format = "N";

或者:

var provider = (CultureInfo)CultureInfo.CurrentCulture.Clone();
provider.NumberFormat.CurrencySymbol = "";
dataGridView1.Columns["Amount"].DefaultCellStyle.FormatProvider = provider;
dataGridView1.Columns["Amount"].DefaultCellStyle.Format = "C";

但是这些解决方案取决于您当前的文化信息(这可能是一件好事,但我们不知道您使用什么文化,所以我们可能不知道您需要更改哪些属性)。

除了FormatProvider在每列上设置属性,您还可以执行以下操作:

// change 'provider' clone as before
Thread.CurrentThread.CurrentCulture = provider;

但这会影响您应用程序的所有部分(至少对于相关线程)。

于 2013-12-02T09:13:54.217 回答
2

你不能简单地使用N2吗?

dataGridView1.Columns["Amount"].DefaultCellStyle.Format = "N2";

数字 ("N") 格式说明符

于 2013-12-02T09:06:23.283 回答
2

尝试这个:

NumberFormatInfo nfi = new NumberFormatInfo();
nfi.CurrencySymbol = string.Empty;
dataGridView1.Columns["Amount"].DefaultCellStyle.FormatProvider = nfi;
dataGridView1.Columns["Amount"].DefaultCellStyle.Format = "c2";

我在控制台应用程序中尝试了以下操作,它似乎正在工作:

NumberFormatInfo nfi = new NumberFormatInfo();
nfi.CurrencySymbol = string.Empty;
Console.WriteLine(String.Format(nfi, "{0:C2}", -1234567.89));
于 2013-12-02T09:15:06.160 回答
1

n2 应该在没有 $ 的情况下为您提供相同的结果。如果不需要千位分隔符,可以使用 f2。

于 2013-12-02T09:07:42.693 回答