如何防止c#中datagridview列的小数位数超过两位?

如何防止c#中datagridview列的小数位数超过两位?,c#,datagridview,C#,Datagridview,我查过了,什么都试过了,但都没用。我的“Price”列从sql server获取数据,其值为“4.9900”或“3.5000”。最后总是有一个00,我甚至试着不输入任何defaultCellstyle格式,但仍然是00。有什么建议吗 dataGridView1.Columns[1].DefaultCellStyle.Format = "N2"; //doesn't work dataGridView1.Columns[1].DefaultCellStyle.Format = "0.00"; /

我查过了,什么都试过了,但都没用。我的“Price”列从sql server获取数据,其值为“4.9900”或“3.5000”。最后总是有一个00,我甚至试着不输入任何defaultCellstyle格式,但仍然是00。有什么建议吗

dataGridView1.Columns[1].DefaultCellStyle.Format = "N2";
//doesn't work

dataGridView1.Columns[1].DefaultCellStyle.Format = "0.00";
//doesn't work

dataGridView1.Columns[1].DefaultCellStyle.Format = String.Format("{0:0.00}", 123.4567);
//doesn't work
根据这个链接

您可以将格式设置为货币的区域性设置,如下所示:

this.dataGridView1.Columns["UnitPrice"].DefaultCellStyle.Format = "c";

发现问题:当我从mySQL服务器获取值时,我正在将一个字符串插入到从double转换为string的列中。

您可以使用DataGridView的CellFormatting事件,并在此事件处理程序中插入这行代码:if(e.ColumnIndex==1)e.value=string.Format(““0.00”,e.value)@Graffito尝试过,但仍然不起作用:/@Grantwiney是的,我检查过,它是一个Double。请在e.Value=String.Format(““0.00”,e.Value”)上插入一个断点,以确保执行该指令。它应该可以工作。@Graffito是的,当一行被添加时,该值仅为0.00。您是什么时候设置的?翻看它似乎是在加载数据后做的事情,根据本文的最后一条评论,我将它放在单元格格式化事件
private void dataGridView1\u CellFormatting(object sender,DataGridViewCellFormattingEventArgs e)
添加数据后,我尝试将其放入,但它仍然显示为#.###00您在配置文件中设置了任何CultureInfo吗?您还可以显式设置dataGridView1.Columns[“UnitPrice”].DefaultCellStyle.FormatProvider=System.Globalization.CultureInfo.CreateSpecificCulture(“en AU”);我会包括一个关于代码需要输入到哪里的解释,以及这个代码为什么工作的解释。
decimal price = 234284.999234m;
dataGridView1.Columns[1].Value = price.ToString("#,##0.00");