 <p>In addition to the other answers, don't forget that casting might fail where <code>Floor</code> would succeed:</p> <pre><code>decimal d = decimal.MaxValue; decimal f = Math.Floor(d); // succeeds long l = (long)d; // fails </code></pre>