我知道有很多关于这个的问题,但我没有发现任何关于这个的问题。
我尝试按照以下格式格式化数字: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
的是确定我是否需要对这个单元格应用格式。valeur
,valeurEN
都是我需要应用格式化的列。e.Value = val.ToString("N", new CultureInfo(_formatEN));
是我应用格式的旧方法。_formatEN
基本上是“en-US”。
基本上我想添加一千个分隔符,并确保使用良好的小数分隔符来说明我做错了什么?
/edit : value是一种浮点数