My rule of thumb is 'you don't need a cast'. If you are doing formulas you want the highest precision (so use double or decimal) and only ever format if displaying to the user. Convert is better, but still, I would advise against it because that's probably wrong too. If the user inputs a double or decimal, then that's what your code should use. If you want an int, input an int.