.NET类型用于存储任何可能的数字,或如何将字符串作为数字进行比较

时间:2012-09-06 09:50:42

标签: .net string numbers compare double

我们正在为.NET DataGrid控件开发一个自动过滤器加载项,它的工作方式类似于相同的MS Excel功能。它允许输入自定义过滤条件。我们需要检查网格单元是否满足自定义过滤条件,但问题是它是字符串格式。 为了优化性能,我们可以将字符串转换为相应的数字,并将其与单元格值作为实数进行比较,但是存储此缓存值的最佳.NET数据类型是什么? Double是坏的,因为我们可以丢失一些数据(精度),BigInteger很好但仅适用于整数值。 另一种方法可以是将单元格文本和字符串值进行比较,以便在它们采用字符串格式时作为数字进行过滤。任何人都可以知道如何在.NET中以最好的方式做到这一点?或者只是在VB.NET中我们正在这个环境中开发?

1 个答案:

答案 0 :(得分:0)

创建一个能够存储所有可能数字格式的自定义类:

class ParsedNumber {
 NumberType Type; //Integer, FloatingPoint, Decimal
 BigInteger Integer;
 double FolatingPoint;
 decimal Decimal;
}

这个类应该实现相等和比较运算符。

您可以将每个单元格解析为此类的实例。该类应抽象出不同的格式,以便您可以将其视为数字。

你也可以将它作为一个结构来保存堆分配。