1

我知道有很多关于这个的问题,但我没有发现任何关于这个的问题。

我尝试按照以下格式格式化数字:value.ToString("N", new CultureInfo("fr-CA"))的类型是浮点数。格式适用,但不是我坚持的方式。我参考了这篇关于格式化的文章

这里的例子:

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 : value是一种浮点数

4

1 回答 1

1
于 2013-06-06T12:31:14.977 回答