1

我当前的项目需要在 Windows 窗体前端的 DataGridView 列中显示一些数字。然后可以编辑这些数字并将其发送回数据库以进行更新。所有值都在 0 到 0.5 之间。为了用户的利益,我希望删除所有尾随零,但准确性也很重要,因此应将 0.123456789 的值存储为全精度。

我一直在使用 SQL 浮点数来存储数字,将它们传递给 C# 中的双精度数。这将导致正确的输出,去除试验零(例如 0.2、0.123、0.432105)。问题是由于浮点错误,某些值被不准确地传递(例如,0.208 被返回为 0.2080000002)。

为了解决这个问题,我改为在数据库和前端都使用十进制数据类型。但是,所有值现在都显示为定义的最大小数位数(例如 0.200000、0.123000、0.432105)。

我可以看到的可能解决方案是:

  • 从 DataGridView 中的小数点中删除试验零。

    尽管,

    dataGridView.Columns[0].DefaultCellStyle.Format = "0.#"
    

    似乎不起作用。

  • 将数字准确地传递给 C# double,然后它将自动以我的首选格式显示数字。

但是,我无法实现其中任何一个。

有人能帮我解决这个问题吗?

4

1 回答 1

0

私有字符[] _noZero = 新字符[] {'0'};

textBox1.Text = l.fieldOfDecimalType.ToString().TrimEnd(_noZero);

于 2013-07-15T10:24:38.610 回答