Couper un nombre

Signaler
Messages postés
12
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
24 mai 2004
-
cs_mic
Messages postés
77
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
19 septembre 2012
-
Bonjour,
G un double qui vaut par exemple 1234,56 et je voudrais savoir si il etait possible de recuperer separement la partie entiere et la partie flottante ?
Merci
@+

7 réponses

Messages postés
6352
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
76
direct en numerique je ne sais pas
par contre une methode "barbarre" pourrait etre de passer par une chaine
double dbl = 1234.56;
string [] valeurs = dbl.ToString().Split(',');


valeurs[0] contient la partie entière et valeurs[1] la partie décimale sous forme de chaine (ensuite il y a les methodes Parse des differents types pour récuperer du numérique)

il faut aussi faire attention a la localisation je pense (le separateur , ou . suivant la localisation)

enfin bref c'est de la grosse bidouille pour depanner ^^

Cocoricoooooooo !!!!
Messages postés
12
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
24 mai 2004

Merci
C peu etre un peu barbarre mais ca marche donc c le principal ...
@+
Messages postés
57
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
3 décembre 2004

hum je vérais bien un moyen plus simple avec les expressions régulières moi :) un truc du genre
double dNombre = "214546,4564"
Regex rNombre = new Regex(@"([0-9]+),([0-9]+)");
Match mNombre = rNombre.Match(dNombre);

et apres y'aura dans mNombre.Groups[1] la partie entière et dans mNombre.Groups[2] la partie flottante ;)
je l'ai tapé comme ca sans tester donc faut vérifier et pas oublier un truc du style :
using System.Text.RegularsExpressions;

voilà une petite contribution ;)
Messages postés
9
Date d'inscription
samedi 3 juillet 2004
Statut
Membre
Dernière intervention
14 février 2005

Ben, le plus simple serait de mettre (int) devant ton double pour le transformer en entier, tout simplement.
Par exemple:

double nb1 = 1234.5678;
int nb2 = (int) nb1;

Ici, nb2 vaudra 1234

A+ et que le pingouin soit avec toi!
Messages postés
77
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
19 septembre 2012

Attention, se méfier de la définition mathématique de la notion de partie entière.
La partie entière d'un nombre est l'unique entier n tel que x soit compris entre n et n+1.
Avec int dans VB tu vas bien obtenir la partie entière cependant, la somme de la partie entière et de la partie décimale ne donnerons x que pour des réels positifs. En effet, la partie entière de -2.56 est -3 et non -2 !


A+
Messages postés
9
Date d'inscription
samedi 3 juillet 2004
Statut
Membre
Dernière intervention
14 février 2005

Ola, cela va faire des mois que j'ai arrêté le C# (et Windows).



Euh non, la partie entière de -2,56 est bien -2.
Messages postés
77
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
19 septembre 2012

Je m'excuse, je me suis trompé de forum, je pensais qu'il s'agissait de VB.

En revanche, il est certain que par définition en mathématique la partie entière de
-2,56 est -3. Attention, integer part en anglais ne désigne pas la partie entière, mais bien -2. L'équivalent du mot français partie entière est floor. Selon les languages de programamtion, int désigne ensuite soit "integer part", soit "floor". En VB, int désigne la partie entière.

http://fr.wikipedia.org/wiki/Partie_enti%C3%A8re