Convertir un float en unsigned int

Le problème exposé dans ce sujet a été résolu.

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 ?

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.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

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