Videos
Simply put it's two ways of thinking of rounding off a number. Ceiling rounds up to nearest integer. Floor rounds down to nearest integer. If the number is an integer, nothing happens.
It's easy to think about floor and ceil from the perspective of the number line.
Let's say you have some decimal number, $2.31$ (I'm going to be using this number as an example throughout my answer)
$\hskip2in$
So, as you can see, the functions just return the nearest integer values.
floor returns the nearest lowest integer and ceil returns the nearest highest integer.
All real numbers are made of a characteristic (an integer part) and mantissa (a fractional part) $$\text{Number} = \text{Characteristic} + \text{Mantissa}$$ $$2.31 = 2 + 0.31$$
When floor a number, you can think of it as replacing the Mantissa with $0$ $$\lfloor 2.31 \rfloor = 2 + 0 = 2$$
and ceil can be thought of as replacing the mantissa with $1$. $$\lceil 2.31 \rceil = 2 + 1 = 3$$
That's not a very popular way of thinking about it but it was the way I thought about it when I first started using it in programming.
Remember, the number remains the same when it is an integer. ie, floor($3$) $=$ ceil($3$) $= 3$
Let's now look at the proper definitions along with the graphs for them.
Floor Function: Returns the greatest integer that is less than or equal to $x$
$\hskip2in$
Ceiling Function: Returns the least integer that is greater than or equal to $x$
$\hskip2in$
Don't let the infinite staircase scare you. It's much more simpler than it seems. Those "line-segments" that you see are actually called piecewise-step functions.
Simply, the black dot represents 'including this number' and the white represents 'excluding this number'. Meaning that each segment actually is from x to all numbers less than x+1.
Let's look at 2.31 and how it would look on both the graphs at once.
You can see that the line $x=2.31$ hits the floor function at the "line-piece" for $2$
and hits the ceiling function at $3$ 


