Conditions for distinct real roots of cubic polynomials.
By solving $f'(x)=0$, you can find out the two turning points of the cubic. Suppose the solutions are $x_1$ and $x_2$. In fact, we have $$ x_{1,2} = \frac{-B \pm \sqrt{B^2-3AC}}{3A} $$
If $B^2-3AC <0$, then $x_1$ and $x_2$ are imaginary, so there are no turning points, and the cubic has only one real root.
If $x_1$ and $x_2$ are real, the cubic has three distinct roots iff $f(x_1)$ and $f(x_2)$ are non-zero and have opposite sign. Or, in short, as the comment says, iff $f(x_1)f(x_2) < 0$.
There are numerous tolerance issues and corner cases to worry about, but that's the basic idea.
Edit: Following up on the comment above, the Wikipedia page says that the nature of the roots can be determined by examining the discriminant: $$ \Delta = 18ABCD - 4B^3D + B^2C^2 -4AC^3 - 27A^2D^2 $$ The cubic has three distinct real roots iff $\Delta > 0$. This is a nice tidy criterion, but my discussion above may still be useful because it provides some geometric insight.
Suppose that (including multiplicity) the roots of $$f(x) = A x^3 + B x^2 + C x + D,$$ $A \neq 0$, are $r_1, r_2, r_3$. Consider the quantity $$\Delta(f) := A^4 (r_3 - r_2)^2 (r_1 - r_3)^2 (r_2 - r_1)^2,$$ called the (polynomial) discriminant of $f$.
If $r_1, r_2, r_3$ are all real and pairwise distinct, then we see that $\Delta(f) > 0$. On the other hand, if $f$ has a repeated root, then $\Delta(f) = 0$, and if $f$ has one real root and two nonreal (necessarily conjugate) roots, substituting gives $\Delta(f) < 0$. (The coefficient $A^4$ is unnecessary for $\Delta$ to enjoy these properties, but among other things, its inclusion makes the below formula nicer.)
These three cases exhaust all of the possibilities, so we conclude:
$$\color{#bf0000}{\fbox{A cubic polynomial $f$ has three distinct, real roots iff $\Delta(f) > 0$.}}$$
The above definition of $\Delta$ is not immediately practical, since explicit formulas for the roots of a general cubic polynomial are unwieldy. On the other hand, with some work (say, by expanding and using Newton's Identities and Vieta's Formulas) we can write $\Delta(f)$ as a homogeneous quartic expression in the coefficients $A, B, C, D$: $$\Delta(f) = -27 A^2 D^2 + 18 ABCD - 4 A C^3 - 4 B^3 D + B^2 C^2.$$ This formula gives a computationally practical answer to the question:
$$ \bbox[0.5mm,border: 1px solid #bf0000]{ \color{#bf0000}{ \begin{array}{c} \textrm{A cubic polynomial} \\ f(x) = A x^3 + B x^2 + C x + D \\ \textrm{has three distinct, real roots iff} \\ -27 A^2 D^2 + 18 ABCD - 4 A C^3 - 4 B^3 D + B^2 C^2 > 0 \textrm{.} \end{array} } } $$
It's apparent that one can generalize the notion of discriminant to polynomials $p$ of any degree $> 1$, producing an expression homogeneous of degree $2(\deg p - 1)$ in the polynomial coefficients. In each case, up to a constant that depends on the degree and the leading coefficient of $f$, $\Delta(f)$ is equal to the resultant $R(f, f')$ of $f$ and its derivative.
By making a suitable real, affine change of variables $x \rightsquigarrow y = a x + b$, by the way, one can transform any given real cubic polynomial to the form $$\tilde{f}(y) = y^3 + P y + Q ;$$ such transformations do not change the number of real roots or the multiplicity of roots. For a cubic polynomial in this form the discriminant has the simpler and well-known form $$\Delta(\tilde f) = -4 P^3 - 27 Q^2.$$