a. All values received from the form will be strings, so the is_float() tests will always be false. You can, however, use is_numeric() to determine if they are numeric strings.
b. Regardless, checking to see if they are floats does not have anything to do with them being > 0, since 0 is a float, as well as -1.0 or -99999.
For the case of wanting to make sure the height is > 0, one might do something like:
if(
!is_numeric($feet) or
!is_numeric($inches) or
$feet < 0 or
$inches < 0 or
$feet + $inches == 0
) {
// not a valid height
} else {
// valid numbers representing a > 0 height
}