La convention logique du C
Il n'existe pas de type booléen en C. Il existe par contre une convention pour distinguer ce qui est faux de ce qui est vrai.
Considérons un entier (int) sur 4 octets. Si cet entier vaut 0 alors tous les digits de ses 4 octets sont à 0. Dans ce cas on convient que ce dernier vaut faux. Toute autre valeur correspond à vrai car au moins un digit vaut 1.
Vous devez l'admettre. De même pour un float, 0.0 correspond à faux et toute autre valeur à vrai.
En résumé, 0 correspond à faux, une autre valeur correspond à vrai.