我有一个数字格式的查询。当更改小数点分隔符(。)---> (,)使用区域设置,在Excel工作表中键入(1.5),它将正确更改为(1,5) 我的问题是在DataGridView控件中,我在DataGrid中遵循相同的过程,但它显示(1.5)---> (15)。 (,)运算符已删除。我需要知道,这是DataGrid的实际行为。我们可以像excel一样执行相同的操作吗?我试过下面的代码。
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
CultureInfo culture = CultureInfo.CurrentUICulture;
culture.NumberFormat.NumberDecimalSeparator = ",";
culture.NumberFormat.NumberGroupSeparator = ".";
请参考excel和DataGrid的比较图像
请任何人建议我如何实现这一点,如excel ???
答案 0 :(得分:1)
我看到了一些问题。
NumberFormat
的{{1}}对象上设置小数和组分隔符字符串,而不是CurrentCulture
。CurrentUICulture
。我怀疑它目前是一个整体类型,例如decimal
。答案 1 :(得分:1)
要将自定义数字格式应用于列,您应该执行以下设置:
要设置列的数字格式以显示千位分隔符并定义小数点后的位数(例如2位数),您应该为"N2"
指定DefaultCellStyle.Format
属性{ {1}}。
要使用自定义千位分隔符和自定义小数点字符,您应该根据文化创建Column
,例如CultureInfo
,然后更改其"en-US"
和NumberFormat.NumberDecimalSeparator
并将文化设置为NumberFormat.NumberGroupSeparator
的{{1}}。
此外,如果列是绑定列,请将其DefaultCellStyle.FormatProvider
设置为数字类型。如果它是绑定列,请确保数据库中的基础列具有上述类型之一。
示例强>
下面的代码将一个未绑定的列添加到网格中,并使用标题为&#34的列的格式;第一列"它显示Column
,如ValyeType
。它使用1234567.89
作为千位分隔符,使用1.234.567,89
作为小数点:
"."