使用双强制到 2 个小数位填充 DataGridView 列,并进行排序
Populate DataGridView Column With a Double forcing to 2 Decimal Places, with Sort
抱歉这个奇怪的标题,但我不知道如何更好地表达它。
我正在尝试使用具有 2 个小数位的数字填充 DataGridView 上的列。
为此,我使用
Dim _Size as Double = 1.2345
DataGridView1.Item(0, 0).Value = Format(_Size, "0.00")
这会正确填充数据,但按此列排序时,会将项目视为字符串。
我在网上发现,如果您将输入的数据转换为数字类型(双精度、整数等),它将像数字而不是字符串一样对其进行排序。
这非常有效,但是任何具有 2 位小数的整数(即 1.00)都会更改为 0 位小数。
所以,如果我有以下值
1.2345
2.2345
3.2345
4.2345
5.0011
然后我将其格式化为小数点后两位,然后它们将变成
1.23
2.23
3.23
4.23
5.00
如果我随后将它们转换回双打,它们就会变成
1.23
2.23
3.23
4.23
5
是否有任何方法可以使用这些格式为 2 位小数但保留双精度类型的值来填充 DataGridView,以便列正确排序?
希望我已经解释清楚了。
如有任何帮助,我们将不胜感激
您正在使用遗留 VB 格式函数将您的值转换 为字符串:
Function Format(Expression As Object, Optional Style As String = "") As String
转换时,其他小数点丢失。使用该列的 DefaultCellStyle
的 Format
属性 指定所需的小数位数(N2
表示 2 位小数)。与 VB 的 Format
不同,它的行为类似于 "DisplayAs",无需更改值或更改类型。
- 在“属性”窗格中,select
Columns
启动列编辑器
- 选择列
- 单击
DefaultCellStyle
属性
- 对于
Format
,单击 ...
按钮从列表中选择 select。 Numeric
和 2 Decimals
结果是 N2
如果您在该列中存储数值,将仅显示 2 位小数,但 actual/original 值仍然可用,排序将使用数值而不是文本排序。
抱歉这个奇怪的标题,但我不知道如何更好地表达它。
我正在尝试使用具有 2 个小数位的数字填充 DataGridView 上的列。
为此,我使用
Dim _Size as Double = 1.2345
DataGridView1.Item(0, 0).Value = Format(_Size, "0.00")
这会正确填充数据,但按此列排序时,会将项目视为字符串。
我在网上发现,如果您将输入的数据转换为数字类型(双精度、整数等),它将像数字而不是字符串一样对其进行排序。 这非常有效,但是任何具有 2 位小数的整数(即 1.00)都会更改为 0 位小数。
所以,如果我有以下值
1.2345
2.2345
3.2345
4.2345
5.0011
然后我将其格式化为小数点后两位,然后它们将变成
1.23
2.23
3.23
4.23
5.00
如果我随后将它们转换回双打,它们就会变成
1.23
2.23
3.23
4.23
5
是否有任何方法可以使用这些格式为 2 位小数但保留双精度类型的值来填充 DataGridView,以便列正确排序?
希望我已经解释清楚了。
如有任何帮助,我们将不胜感激
您正在使用遗留 VB 格式函数将您的值转换 为字符串:
Function Format(Expression As Object, Optional Style As String = "") As String
转换时,其他小数点丢失。使用该列的 DefaultCellStyle
的 Format
属性 指定所需的小数位数(N2
表示 2 位小数)。与 VB 的 Format
不同,它的行为类似于 "DisplayAs",无需更改值或更改类型。
- 在“属性”窗格中,select
Columns
启动列编辑器 - 选择列
- 单击
DefaultCellStyle
属性 - 对于
Format
,单击...
按钮从列表中选择 select。Numeric
和2 Decimals
结果是N2
如果您在该列中存储数值,将仅显示 2 位小数,但 actual/original 值仍然可用,排序将使用数值而不是文本排序。