Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ajouter 2 nombres a virgules

6 réponses
Avatar
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;

}

6 réponses

Avatar
OD
tu peux toujours tourner le truc dans tous les sens, la propriété Value
de TrackBar est un integer :-)

--


OD___
www.e-naxos.com
Avatar
Michael Moreno
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/
Avatar
Gilles TOURREAU
Le Wed, 18 Apr 2007 22:11:14 +0200, Jonathan a
é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
Avatar
OD
> 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
Avatar
Michael Moreno
> 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/
Avatar
Jonathan
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" a écrit dans le message de news:
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;

}