什么格式用于不包括$的钱?

时间:2013-12-02 09:02:46

标签: c# numbers currency money-format

这是我的例子

enter image description here

我想删除$,但格式仍然相同?我怎么可能这样做?

以下是我的datagridview

中的代码
dataGridView1.Columns["Amount"].DefaultCellStyle.Format = "c2";

预期产出

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

4 个答案:

答案 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";

The Numeric ("N") Format Specifier

答案 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。