Convertir un float en unsigned int

L’auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,

La norme me garantit-elle que le code suivant affecte toujours la valeur 0 à b ?

#include <stdio.h>

int main(void)
{
    float a = 0.5;
    unsigned int b = a;

    printf("b : %u\n", b); // b : 0
    return 0;
}

Ou bien suis-je dans un undefined behavior ?

+0 -0

Salut,

Ou bien suis-je dans un undefined behavior ?

info-matique

Juste pour ajouter en précision : le comportement est déterminé aussi longtemps que la valeur que tu convertis est représentable dans un unsigned int (partie fractionnaire exclue). En l’occurrence, zéro est toujours représentable.

#JeSuisArius

+1 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte