any faster than Long on modern processors). If you need to store floating point numbers (i.e. decimal fractions) other than money use Double, or Single if you are sure that the accuracy and/or size required are compatible with Single. If you need to store money use Currency (aka decimal). Of course if you are storing your data in a database then obviously you need to take into account what data type is used in the database, in which case you don't really have a choice at the VB6 level. Hmm, yeah, I think you're right. It appears that in VB6 the "decimal" datatype is just an odd kind of Variant. Probably should avoid it. How about Currency? Also, doesn't VB6 come with online help? Surely you can find out these kinds of things just by looking through that? The help that came with it is now even more valuable, since Microsoft no longer have it on their website! Edit: Just dug out some old MSDN library CDs: Note At this time the Decimal data type can only be used within a Variant, that is, you cannot declare a variable to be of type Decimal. You can, however, create a Variant whose subtype is Decimal using the CDec function. Currency (scaled integer) 8 bytes -922,337,203,685,477.5808 to 922,337,203,685,477.5807 Decimal 14 bytes +/-79,228,162,514,264,337,593,543,- 950,335 with no decimal point; +/-7.9228162514264337593543950335 - with 28 places to the right of the decimal; smallest non-zero number is +/-0.0000000000000000000000000001 - User-defined (using Type) Number required by elements The