很抱歉这个奇怪的标题,但我不知道如何更好地说出来。
我正在尝试使用包含2个小数位的数字填充DataGridView上的列。
为此,我正在使用
Dim _Size as Double = 1.2345
DataGridView1.Item(0, 0).Value = Format(_Size, "0.00")
这会正确填充数据,但在按此列排序时,会将该项视为字符串。
我在网上发现,如果你将输入的数据转换为数字类型(double,integer等...),它会将它排序为数字而不是字符串。 这种方法非常出色,但任何带有2位小数(即1.00)的整数值都会更改为0位小数。
所以,如果我有以下值
1.2345
2.2345
3.2345
4.2345
5.0011
然后我格式化为2位小数,然后它们将成为
1.23
2.23
3.23
4.23
5.00
如果我然后将它们转换回双打,那么它们就会成为
1.23
2.23
3.23
4.23
5
是否有任何方法可以使用格式化为2位小数的这些值填充DataGridView,但保留double类型以便列正确排序?
我希望我已经清楚地解释了这一点。
非常感谢任何帮助
答案 0 :(得分:2)
您使用旧版VB格式函数将值转换为字符串:
Function Format(Expression As Object, Optional Style As String = "") As String
转换后,其他小数将丢失。使用该列Format
的{{1}}属性指定所需的小数位数({1}}为2位小数。与VB' DefaultCellStyle
不同,这就像一个" DisplayAs"不改变值或改变类型。
N2
以启动列编辑器Format
媒体资源Columns
,请点击DefaultCellStyle
按钮从列表中进行选择。 Format
和...
会产生Numeric
如果在该列中存储数值,则只显示2个小数位,但实际/原始值仍然可用,排序将使用数值而不是文本排序。