C#

meth6278 Messages postés 23 Date d'inscription mardi 8 novembre 2005 Statut Membre Dernière intervention 24 juin 2009 - 14 juin 2006 à 16:25
cs_enzyme Messages postés 20 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 13 mai 2008 - 16 juin 2006 à 23:54
Salut ...

Comment recupérer les chiffre aprés la firgule ...
exp (1545,123)
j'ai besoin des numero 123
merci......

11 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
14 juin 2006 à 17:03
Salut,
Pourquoi as-tu poster le message dans la rubriques Mono ?
Sinon, tu peux utiliser la méthode Split de l'object string...

<hr size= "2" /> VC# forever
=13319
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 juin 2006 à 18:18
Tout le monde poste sur Mono quand il s'agit d'une question generale...
Je déplace

Mx
MVP C# 
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 juin 2006 à 18:47
C'est bizarre, j'etait persuadé qu'il y avait une méthode pour recuperer la partie flottante d'un nombre avec decimales, mais je la retrouve pas.
Donc au pire, tu peux utiliser :

tonNombre - Math.Truncate(tonNombre)

Mais je pense que la méthode de Bidou est plus efficace, ou alors combiner IndexOf et Substring.

Mx
MVP C# 
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
14 juin 2006 à 20:06
exp = 1545,123

exp - Math.Abs(exp)

::|The S@ib|:: MVP C#.NET
0

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

Posez votre question
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
15 juin 2006 à 08:34
TheSaib> Pas essayé, mais le morceau de code que tu as mis retournerait plutôt 0.123 non?
Alors que ce qu'on aimerait c'est 123.

<hr size= "2" /> VC# forever
=13319
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
15 juin 2006 à 09:12
Ouep, le mien aussi retournerait 0.123 d'ailleurs

Mx
MVP C# 
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
15 juin 2006 à 10:30
Bien vu.

::|The S@ib|:: MVP C#.NET
0
cs_enzyme Messages postés 20 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 13 mai 2008
16 juin 2006 à 22:09
Bonsoir,

voiçi une solution à votre problème si vous ne l'avez pas déjà trouvé.

En tout cas merci, c'était un exercice interressant.

decimal nb = (
decimal)479.542415788; // par exemple

decimal exp = nb%1;
string res Convert.ToString(exp);exp(

int) (exp * (
decimal)
Math.Pow(10,(res.Length)-2));
// -2, car "0,"

Console.WriteLine(exp);

.Enzyme
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
16 juin 2006 à 22:50
Ou, comme proposer plus haut :

decimal nb = (
decimal)479.542415788;

int x =
Int32.Parse(nb.ToString().Split(
'.')[1]);

Remarque :
Au lieu de splitter sur le '.', on peut chercher le caractère de la culture courante qui fait office de "séparateur".
Il faut s'assurer que le nombre d'entier après la virgule ne dépasse pas la taille d'un int.

<hr size="2" /> VC# forever
=13319
0
cs_enzyme Messages postés 20 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 13 mai 2008
16 juin 2006 à 23:46
Bonsoir,

Merci le "Trigre",

char

Separateur = System.Globalization.
CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator[0];

int n =
Int32.Parse(nb.ToString().Split(Separateur)[1]);
de cette façon plus besoin de chercher le séparateur. Je savais bien que l'on pouvais faire plus simple que le code que j'avais écris......................

Encore merci

.Enzyme
0
cs_enzyme Messages postés 20 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 13 mai 2008
16 juin 2006 à 23:54
Bonsoir,

Avec cela plus de problème de séparateur décimal. Bon Ok il reste le problème de la limite imposée par Int32.

char




Separateur = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator[0];



int n = Int32.Parse(nb.ToString().Split(Separateur)[1]);



Super j'ai beaucoup appris ce soir ... merci à tous







.Enzyme
0
Rejoignez-nous