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

本文关键字:方法 交换 格式化 符号 数字 简单 一种 有没有 | 更新日期: 2023-09-27 17:56:12

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

我有一个具有用户定义格式为 Cn 或 Fn 的字段。用户还希望能够(可选)交换值上的符号(例如,-123.4 将显示为 £123.40)。有没有一种使用标准格式的简单方法?我找不到任何迹象表明这是可能的,我必须生成某种形式的用户定义字符串来表示这些(这是可能的,但由于各种原因存在问题)。

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

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

用户单击一列(某种)并说交换符号。在那个时候 点,我无法访问数据,因为它已经 在网格中格式化

你不能使用这种方法吗?

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);
    }
}

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