Why does `intval(19.9 * 100)` equal `1989`?
<p>Boy, this one is <i>really</i> weird. I expect the following code to print 1990, but it prints 1989!</p>

<pre><code>$val = '$19.9';

$val = preg_replace('/[^\d.]/','',$val);
$val = intval($val * 100);

echo $val;
</code></pre>

<p>Why on earth is this happening?</p>

<p>Edit: and this code:</p>

<pre><code>$val = '$19.9';
$val = preg_replace('/[^\d.]/','',$val);
echo $val . "&lt;br&gt;";
$val = $val * 100;
echo $val . "&lt;br&gt;";
$val = intval($val);
echo $val;
</code></pre>

<p>Prints:</p>

<pre><code>19.9
1990
1989
</code></pre>

<p>Why does <code>intval(1990)</code> equal <code>1989</code>???</p>
