Ajouter 2 nombres a virgules

Le
Jonathan
Bonjour,
je suis tout nouveau dans le C# et je pédale grave dans la choucroute la.
Impossible d'ajouter un nombre à virgule. J'ai essayé des cast dans tous les
sens (voi mon algo) mais pas moyen, mon algo me garde toujours une valeur
0.0 ou 1.0 quand je debbogue (infobules sur variables). Comme si il ne veut
rien savoir des chiffre après la virgule.
J'ai l'habitude du VB ou lorsqu'on fait (1 + (80 /100)) donne direct 1.80
sans que l'on se pose de question.
Mais la j'y comprends plus rien.

Si quelqu'un pourrait me donner la solution

Merci d'avance.

Joanthan

Voila mon code :

private void trackBar1_ValueChanged_1(object sender, EventArgs e)

{

Double Valeur;

Decimal Y;

Y = Math.Round(Decimal.Parse(Convert.ToString((trackBar1.Value / 100))),2);

if (trackBar1.Value > 0)

{

Valeur = 1 + Convert.ToDouble(Y);

}

else

{

Valeur = 1 - Convert.ToDouble(Y);

}

Wmp.settings.rate = Valeur;

}
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
OD
Le #12195861
tu peux toujours tourner le truc dans tous les sens, la propriété Value
de TrackBar est un integer :-)

--


OD___
www.e-naxos.com
Michael Moreno
Le #12195841
Y = Math.Round(trackBar1.Value / 100.0),2);

Remarque bien le ".0" !

ou bien:

Y = Math.Round((double)trackBar1.Value / 100),2);

--
Michael
----
http://michael.moreno.free.fr/
http://port.cogolin.free.fr/
Gilles TOURREAU
Le #12195831
Le Wed, 18 Apr 2007 22:11:14 +0200, Jonathan écrit:

Bonjour,
je suis tout nouveau dans le C# et je pédale grave dans la choucroute la.
Impossible d'ajouter un nombre à virgule. J'ai essayé des cast dans tous
les
sens (voi mon algo) mais pas moyen, mon algo me garde toujours une valeur
0.0 ou 1.0 quand je debbogue (infobules sur variables). Comme si il ne
veut
rien savoir des chiffre après la virgule.
J'ai l'habitude du VB ou lorsqu'on fait (1 + (80 /100)) donne direct 1.80
sans que l'on se pose de question.
Mais la j'y comprends plus rien.

Si quelqu'un pourrait me donner la solution...

Merci d'avance.

Joanthan

Voila mon code :

private void trackBar1_ValueChanged_1(object sender, EventArgs e)

{

Double Valeur;

Decimal Y;

Y = Math.Round(Decimal.Parse(Convert.ToString((trackBar1.Value /
100))),2);

if (trackBar1.Value > 0)

{

Valeur = 1 + Convert.ToDouble(Y);

}

else

{

Valeur = 1 - Convert.ToDouble(Y);

}

Wmp.settings.rate = Valeur;

}







Lorsque tu fais une division, si le diviseur est un entier, le résultat
sera un entier. Pour que le résultat soit un flottant il faut que le
diviseur soit flottant :

1 / 2 = 0
1 / 2.0 = 0.5
1 / (float)2 = 0.5
1 / (double)2 = 0.5
1 / 2F = 0.5

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
OD
Le #12195821
> Y = Math.Round(trackBar1.Value / 100.0),2);

Remarque bien le ".0" !

ou bien:

Y = Math.Round((double)trackBar1.Value / 100),2);



il peut faire le calcul comme il veut, TrackBar.value est un entier,
forcément que ça ne donnera à l'arrivée que des valeurs entières.

--


OD___
www.e-naxos.com
Michael Moreno
Le #12195801
> il peut faire le calcul comme il veut, TrackBar.value est un entier,
forcément que ça ne donnera à l'arrivée que des valeurs entières.



Apparemment on ne lit pas le meme code...

--
Michael
----
http://michael.moreno.free.fr/
http://port.cogolin.free.fr/
Jonathan
Le #12195631
Ca à marché avec les méthodes de Michael Moreno. Tranypage en tpye DOUBLE de
la valeur INTEGER donc.

Merci pour la réponse.

@+

Jonathan

"Jonathan" 46267b62$0$22802$
Bonjour,
je suis tout nouveau dans le C# et je pédale grave dans la choucroute la.
Impossible d'ajouter un nombre à virgule. J'ai essayé des cast dans tous
les sens (voi mon algo) mais pas moyen, mon algo me garde toujours une
valeur 0.0 ou 1.0 quand je debbogue (infobules sur variables). Comme si il
ne veut rien savoir des chiffre après la virgule.
J'ai l'habitude du VB ou lorsqu'on fait (1 + (80 /100)) donne direct 1.80
sans que l'on se pose de question.
Mais la j'y comprends plus rien.

Si quelqu'un pourrait me donner la solution...

Merci d'avance.

Joanthan

Voila mon code :

private void trackBar1_ValueChanged_1(object sender, EventArgs e)

{

Double Valeur;

Decimal Y;

Y = Math.Round(Decimal.Parse(Convert.ToString((trackBar1.Value /
100))),2);

if (trackBar1.Value > 0)

{

Valeur = 1 + Convert.ToDouble(Y);

}

else

{

Valeur = 1 - Convert.ToDouble(Y);

}

Wmp.settings.rate = Valeur;

}






Publicité
Poster une réponse
Anonyme