Ceiling[x] returns an integer when is any numeric quantity, whether or not it is an explicit number.
For exact numeric quantities, Ceiling internally uses numerical approximations to establish its result. This process can be affected by the setting of the global variable $MaxExtraPrecision.
Ceiling applies separately to real and imaginary parts of complex numbers.