The results of a factorial calculation are positive integers, so you were fine leaving it as int. To extend the range, you could use unsigned int.
If your value is larger than an int can hold, how is it fine leaving it as an int? Isn't the double giving you the ability to have a larger value -- beyond the capabilities of int -- albiet as an approximation due to magnitude?