1

私の現在のプロジェクトでは、Windows フォーム フロント エンドの DataGridView 列にいくつかの数値を表示する必要があります。その後、番号を編集して、データベースに送り返して更新することができます。すべての値は 0 ~ 0.5 です。ユーザーのために、末尾のゼロをすべて削除したいと思いますが、精度も重要であるため、0.123456789 の値を完全な精度で格納する必要があります。

SQL float を使用して数値を格納し、C# で double に渡していました。これにより、試用ゼロが削除された正しい出力が得られます (例: 0.2、0.123、0.432105)。問題は、浮動小数点エラーが原因で、一部の値が不正確に渡される (たとえば、0.208 が 0.2080000002 として返される) ことでした。

これを解決するために、データベースとフロント エンドの両方で 10 進データ型を使用するように変更しました。ただし、すべての値は定義された小数点以下の最大桁数まで表示されるようになりました (例: 0.200000、0.123000、0.432105)。

私が見ることができる可能な解決策は次のとおりです。

  • DataGridView の 10 進数から試用ゼロを削除します。

    けれど、

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

    動作していないようです。

  • 数値を C# の double に正確に渡すと、数値が好みの形式で自動的に表示されます。

ただし、これらのいずれも達成できません。

この問題で私を助けることができる人はいますか?

4

1 に答える 1

0

プライベート char[] _noZero = 新しい char[] {'0'};

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

于 2013-07-15T10:24:38.610 に答える