是否有一种简单的方法来交换格式化数字的符号?

时间:2016-07-08 13:18:15

标签: c# number-formatting

我完全接受这可能是不可能的,但似乎有一个问题,看看是否有人有一个简单的答案。

我有一个用户定义格式为Cn或Fn的字段。用户希望能够(也可以)交换值上的符号(例如,-123.4将显示为£123.40)。是否有使用标准格式的简单方法?我找不到任何东西表明这是可能的,我将不得不生成某种形式的用户定义字符串来代表这些(这是可能的,但出于各种原因有问题)。

原因在于会计目的,其中数字与最容易解释的方式相反。我们无法更改原始数据,并且在格式化之前更改数据也不是直截了当的。

1 个答案:

答案 0 :(得分:0)

  

用户点击列(排序)并说明交换签名。在那   点,我没有访问数据,因为它已经存在   在网格中格式化

你不能用这种方法吗?

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    var cell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
    if(cell.Value == null) return;

    // say this is for example: £123.40
    var ukCulture = new System.Globalization.CultureInfo("en-GB");
    decimal value;
    if (decimal.TryParse(cell.Value.ToString(), NumberStyles.Any, ukCulture, out value))
    {
        cell.Value = (-1*value).ToString("C", ukCulture);
    }
}

每次用户点击此单元格时,值的符号都会互换。