dorras7
Messages postés63Date d'inscriptiondimanche 15 mars 2009StatutMembreDernière intervention23 décembre 2010
-
26 août 2009 à 10:09
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 2012
-
26 août 2009 à 15:36
Salut,
j'ai besoin de connaitre si un nombre est un float ou pas
ed73
Messages postés276Date d'inscriptionlundi 8 septembre 2008StatutMembreDernière intervention15 avril 20132 26 août 2009 à 10:40
Bonjour,
Commence par regarder si le nombre est égal à sa partie entière et est compris entre int.MinValue et int.MinValue, si oui c'est un entier. Même chose avec long.MinValue et long.MaxValue
Puis si le nombre est compris entre float.MinValue et MaxValue alors c'est peut-être un float. Je dis peut-être car le nombre peut être compris entre ces 2 valeurs mais posséder un nombre de décimales incompatible avec la précision des float, plus faible que celle des double. Dans ce cas tu peux essayer de caster ton nombre en float puis en double à nouveau et regarder si les 2 nombres sont égaux.
ed73
Messages postés276Date d'inscriptionlundi 8 septembre 2008StatutMembreDernière intervention15 avril 20132 26 août 2009 à 12:15
GetType() te donne le type de la variable, mais rien ne prouve que le nombre contenu dedans est bien un float, ça peut tout aussi bien être un entier. De même un float peut très bien être dans une variable de type double.
La demande porte sur le fait de savoir si "un nombre est un float" et pas de savoir si "une variable est un float", il y a une nuance.
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 26 août 2009 à 15:36
Salut, Float c'est le type, à mon avis, la question devrait être "comment savoir si un nombre a une partie fractionnaire, des chiffres après la virgule.."
La 1ère idéé qui me vient c'est ça :
float x = 0.0f;
bool hasFraction = ( x - ( float )( int )x ) > 0.0f;