bip98
Messages postés104Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention29 avril 2008
-
3 mars 2005 à 09:02
bip98
Messages postés104Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention29 avril 2008
-
4 mars 2005 à 09:46
M.MorpionMx
M'a parlé de la méthode Decimal.Compare, j'en aurai besoin ! car il faudrait que je teste juste des décimals, faudrait qui me dise si elle est plus grand ou plus petit que .5 ex:
8,89 et 0.5 --> ici plus grand
8.49 et 0.5 -->ici plus petit
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 3 mars 2005 à 09:34
C'est bien simple
Decimal.Compare(0.49, 0.5) te retournera une valeur negative, car le premier parametre est plus petit que le second
Decimal.Compare(0.5, 0.5) te retournera 0, car les 2 parametres sont egaux
Decimal.Compare(8.49, 0.5) te retournera une valeur positive, car le premier premier parametre est plus grand que le second
En fait, c'est comme si tu demandais "Est ce que mon 1er param est plus grand que le second ?"
Valeur neg-> non
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 3 mars 2005 à 17:35
Ok, la c'est encore autre chose. Je croyais que tu parlais du type Decimal, et non pas des décimales
Bah il faut juste que tu supprimes le nombre entier de chaque Decimal,
ou alors il y a peut-etre une methode qui ne garde que les chiffres
apres la virgule.
Pour la premiere solution, La methode Decimal.Truncate retourne l'entier, donc tu as juste a faire
Decimal d1 = 5.5m;
Decimal d2 = 0.5m;
int v_decimal_test=Decimal.Compare( d1 - Decimal.Truncate(d1), d2 - Decimal.Truncate(d2));
Et c'est bon.
Y'a peut etre une façon plus simple de faire ca.
Mx
bip98
Messages postés104Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention29 avril 20081 3 mars 2005 à 15:51
Quand je fais:
v_decimal_test=Decimal.Compare(2.3, 0.5);
v_decimal_test étant un INT
le compil me marque:
[C# Erreur] Print.cs(210): La méthode surchargée correspondant le mieux à 'decimal.Compare(decimal, decimal)' possède des arguments non valides
[C# Erreur] Print.cs(210): Argument '1' : impossible de convertir de 'double' en 'decimal'
[C# Erreur] Print.cs(210): Argument '2' : impossible de convertir de 'double' en 'decimal'
Et si je fais:
decimal oo=2.34
decimal ii=0.213
//La déclaration ne fonctionne pas..
car je pense qu'il faut les transformer en decimal...
bip98
Messages postés104Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention29 avril 20081 3 mars 2005 à 16:32
Oui ca marche la conversion ! je ne savais pas qu'on pouvait faire comme ca !!
Le prob maintenant c'est qu'il test le nombre entier..
Par ex: si je fais le test:
3.4 et 0.5 --> je voudrais qu'il me dise que 0.5 est plus grand et la il me retoune 1 donc il dit que 3.4 est plus grand !..il test pas le décimal mais le nombre entier..