Note the exceptions when it comes to decimal numbers:
<?php
$a = 0.00;
$b = '0.00';
echo (empty($a)? "empty": "not empty"); echo (empty($b)? "empty": "not empty"); $c = intval($b);
echo (empty($c)? "empty": "not empty"); ?>
For those of you using MySQL, if you have a table with a column of decimal type, when you do a SELECT, your data will be returned as a string, so you'll need to do apply intval() before testing for empty.
e.g.
TABLE t has columns id MEDIUMINT and d DECIMAL(4,2)
and contains 1 row where id=1, d=0.00
<?php
$q = "SELECT * FROM t";
$res = mysql_query($q);
$row = mysql_fetch_assoc($res);
echo (empty($row['d'])? "empty": "not empty"); ?>