这是我的例子
我想删除$
,但格式仍然相同?我怎么可能这样做?
以下是我的datagridview
dataGridView1.Columns["Amount"].DefaultCellStyle.Format = "c2";
预期产出
(2,138,870,900.11)
19,921,759.23
..and so on
答案 0 :(得分: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;
但这会影响应用程序的所有部分(至少对于相关的线程)。
答案 1 :(得分:2)
你不能简单地使用N2
吗?
dataGridView1.Columns["Amount"].DefaultCellStyle.Format = "N2";
答案 2 :(得分: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));
答案 3 :(得分:1)
n2应该在没有$的情况下给你相同的。 如果您不想要千位分隔符,可以使用f2。