Couper un nombre

cs_TheGo Messages postés 12 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 24 mai 2004 - 20 mai 2004 à 18:08
cs_mic Messages postés 77 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 19 septembre 2012 - 13 sept. 2005 à 14:33
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

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
20 mai 2004 à 18:33
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 !!!!
0
cs_TheGo Messages postés 12 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 24 mai 2004
20 mai 2004 à 19:05
Merci
C peu etre un peu barbarre mais ca marche donc c le principal ...
@+
0
Lordvb Messages postés 57 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 3 décembre 2004
23 mai 2004 à 12:40
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 ;)
0
JaimeLinux Messages postés 9 Date d'inscription samedi 3 juillet 2004 Statut Membre Dernière intervention 14 février 2005
3 oct. 2004 à 15:01
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!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_mic Messages postés 77 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 19 septembre 2012
13 sept. 2005 à 13:05
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+
0
JaimeLinux Messages postés 9 Date d'inscription samedi 3 juillet 2004 Statut Membre Dernière intervention 14 février 2005
13 sept. 2005 à 13:25
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.
0
cs_mic Messages postés 77 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 19 septembre 2012
13 sept. 2005 à 14:33
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
0
Rejoignez-nous