1

これについて多くの質問があることは知っていますが、これに関するものは何も見つかりませんでした.

この形式に従って数値をフォーマットしようとしました: value.ToString("N", new CultureInfo("fr-CA"))の型は float です。フォーマットは適用されますが、私が考えた方法ではありません。整形についてはこちらの記事を参考にしました

以下に例を示します。

123456     display as 123 456.00
123456.789 display as 123 456.79 // rounded
1234.5     display 1 234.50      //added a 0 padding

このようなものをフォーマットする方法はありますか?

123456     display as 123 456    
123456.789 display as 123 456.789 
1234.5     display as 1 234.5

フォーマットを適用しようとしたコードは次のとおりです

private void dgvform_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    float val;
    if ( (e.ColumnIndex == valeur.Index || e.ColumnIndex == valeurEN.Index)
        && dgvform.Rows[e.RowIndex].Cells[type_d.Index].Value != null && dgvform.Rows[e.RowIndex].Cells[type_d.Index].Value.ToString() == "N"
        && dgvform.Rows[e.RowIndex].Cells[valeur.Index].Value != null
        && float.TryParse(dgvform.Rows[e.RowIndex].Cells[valeur.Index].Value.ToString(), out val))
    {
        if (e.ColumnIndex == valeurEN.Index)
            e.Value = val.ToString("N", new CultureInfo(_formatEN));
        else
            e.Value = string.Format("{0:# ### ###.####}", val);
    }
}

これはデータグリッドビューの一部です。大きなif問題は、このセルに書式を適用する必要があるかどうかを判断することです。valeurvaleurEN両方の列で、書式設定を適用する必要がありました。e.Value = val.ToString("N", new CultureInfo(_formatEN));フォーマットを適用する古い方法です。_formatEN基本的に「en-US」です。

基本的に、私は千の区切り記号を追加したいと思います。

/edit :は float 型です

4

1 に答える 1

1
于 2013-06-06T12:31:14.977 に答える