Which data type should you use C#

I recently read on MSDN Blog I find it kind of interesting that they're telling programmers not to use Byte, sbyte, short, ushort, uint, and ulong seems a bit silly if those data types aren't worth the hassle and you can't figure which one to use maybe you shouldn't be programming?

anyway it is kinda of useful if your having a slow day I just think its been simplified too much.

Here it is....

If you need fractions:

  • Use decimal when intermediate results need to be rounded to fixed precision - this is almost always limited to calculations involving money.
  • Otherwise use double - you will get the rounding of your calculations wrong, but the extra precision of double will ensure that your results will be good enough.
  • Only use float if you know you have a space issue, and you know the precision implications. If you don't have a PhD in numeric computation you don't qualify.


  • Use int whenever your values can fit in an int, even for values which can never be negative. This is so that subtraction operations don't get you confused.
  • Use long when your values can't fit in an int. Byte, sbyte, short, ushort, uint, and ulong should only ever be used for interop with C code. Otherwise they're not worth the hassle.