Problème de variable ???

Le
LE TROLL
Bonjour,

Je ne comprends pas d'où ça vient:

J'ai une variable "pas" As Double
je fais
pas = 1000 / list1.listcount-1
list1.listcount = 1590 dans mon test
Donc je devrais trouver


1000 / 1590 = 0,62893082 (vérif Excel)

Or je trouve "-0,371464487743558"

???

Certes si on fait le complément on retrouve:
1 -0,371464487743558 = 0,62893082

D'ou (0,3 * -1) + 0,6 = 1

La solution bâtarde serait de faire:
((-0,371464487743558 * 2) * -1) = 0,6

Mais bon, normalement ça ne devrait pas donner ça

Ensuite je passe ça en Cint pour alimenter ma ProgressBar, toutefois c'est
pas terrible de lui filer des négatifs

Et la liste est bien inférieure à sa capacité, je teste si >32000 stop
le chargement, donc ce n'est pas le listcount qui peut produire des
aberrations

Je ne comprends pas pourquoi je me retrouve avec un négatif en divisant
un positif par un autre positif ???

Voici le code:

Dim pas As Double, totalPas As Double, avance As Integer

pas = 1000 / List1.ListCount - 1
totalPas = 0

for i

totalPas = totalPas + pas
avance = CInt(totalPas)
ProgressBar1.Value = avance
next i



Si vous avez une idée ???


Merci beaucoup, au revoir et à bientôt :o)

Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
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
LE TROLL
Le #15409171
J'ai trouvé, c'est à caus de:

x = 1000 / y - 1

Il faut écrire:

x = 1000 / (y - 1)

Mais pourquoi, quelqu'un peut-il m'expliquer ???


--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"LE TROLL"
Bonjour,

Je ne comprends pas d'où ça vient:

J'ai une variable "pas" As Double
je fais
pas = 1000 / list1.listcount-1
list1.listcount = 1590 dans mon test
Donc je devrais trouver


1000 / 1590 = 0,62893082 (vérif Excel)

Or je trouve "-0,371464487743558"

???

Certes si on fait le complément on retrouve:
1 -0,371464487743558 = 0,62893082

D'ou (0,3... * -1) + 0,6... = 1

La solution bâtarde serait de faire:
((-0,371464487743558 * 2) * -1) = 0,6...

Mais bon, normalement ça ne devrait pas donner ça...

Ensuite je passe ça en Cint pour alimenter ma ProgressBar, toutefois c'est
pas terrible de lui filer des négatifs...

Et la liste est bien inférieure à sa capacité, je teste si >32000 stop
le chargement, donc ce n'est pas le listcount qui peut produire des
aberrations...

Je ne comprends pas pourquoi je me retrouve avec un négatif en divisant
un positif par un autre positif ???

Voici le code:

Dim pas As Double, totalPas As Double, avance As Integer
............
pas = 1000 / List1.ListCount - 1
totalPas = 0
.........
for i...
.........
totalPas = totalPas + pas
avance = CInt(totalPas)
ProgressBar1.Value = avance
next i



Si vous avez une idée ???


Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------




Jacques
Le #15409121
Bonjour,

Un même calcul ne peut aboutir à deux résultats différents : il est donc
nécessaire d'établir une convention sur l'ordre dans lequel effectuer les
calculs.


Par ordre décroissant de priorité seront effectués dans l'ordre:

a.. les puissances (y compris les racines carrées);
b.. puis les multiplications et les divisions;
c.. enfin les additions et les soustractions.

1000/5-1 = 199
1000 /(5-1) = 250

Jacques(BE)




"LE TROLL"
J'ai trouvé, c'est à caus de:

x = 1000 / y - 1

Il faut écrire:

x = 1000 / (y - 1)

Mais pourquoi, quelqu'un peut-il m'expliquer ???


--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
--------------------------------------------------------------------------


----------
"LE TROLL"
> Bonjour,
>
> Je ne comprends pas d'où ça vient:
>
> J'ai une variable "pas" As Double
> je fais
> pas = 1000 / list1.listcount-1
> list1.listcount = 1590 dans mon test
> Donc je devrais trouver
>
>
> 1000 / 1590 = 0,62893082 (vérif Excel)
>
> Or je trouve "-0,371464487743558"
>
> ???
>
> Certes si on fait le complément on retrouve:
> 1 -0,371464487743558 = 0,62893082
>
> D'ou (0,3... * -1) + 0,6... = 1
>
> La solution bâtarde serait de faire:
> ((-0,371464487743558 * 2) * -1) = 0,6...
>
> Mais bon, normalement ça ne devrait pas donner ça...
>
> Ensuite je passe ça en Cint pour alimenter ma ProgressBar, toutefois


c'est
> pas terrible de lui filer des négatifs...
>
> Et la liste est bien inférieure à sa capacité, je teste si >32000


stop
> le chargement, donc ce n'est pas le listcount qui peut produire des
> aberrations...
>
> Je ne comprends pas pourquoi je me retrouve avec un négatif en


divisant
> un positif par un autre positif ???
>
> Voici le code:
>
> Dim pas As Double, totalPas As Double, avance As Integer
> ............
> pas = 1000 / List1.ListCount - 1
> totalPas = 0
> .........
> for i...
> .........
> totalPas = totalPas + pas
> avance = CInt(totalPas)
> ProgressBar1.Value = avance
> next i
>
>
>
> Si vous avez une idée ???
>
>
> Merci beaucoup, au revoir et à bientôt :o)
> ------
> Romans, logiciels, email, site personnel
> http://irolog.free.fr/joe.htm

--------------------------------------------------------------------------


----------
>
>




LE TROLL
Le #15408961
Bonjour Jacques,

Merci, oui j'ai appris jadis les priorités, mais je ne m'en souviens
plus, j'ai bien passé un demi-heures à chercher partout, y compris si ma
liste ne débordait pas et provoquait des aberrations, enfin c'est résolu.

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jacques" %
Bonjour,

Un même calcul ne peut aboutir à deux résultats différents : il est donc
nécessaire d'établir une convention sur l'ordre dans lequel effectuer les
calculs.


Par ordre décroissant de priorité seront effectués dans l'ordre:

a.. les puissances (y compris les racines carrées);
b.. puis les multiplications et les divisions;
c.. enfin les additions et les soustractions.

1000/5-1 = 199
1000 /(5-1) = 250

Jacques(BE)




"LE TROLL"
J'ai trouvé, c'est à caus de:

x = 1000 / y - 1

Il faut écrire:

x = 1000 / (y - 1)

Mais pourquoi, quelqu'un peut-il m'expliquer ???


--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
--------------------------------------------------------------------------


----------
"LE TROLL"
> Bonjour,
>
> Je ne comprends pas d'où ça vient:
>
> J'ai une variable "pas" As Double
> je fais
> pas = 1000 / list1.listcount-1
> list1.listcount = 1590 dans mon test
> Donc je devrais trouver
>
>
> 1000 / 1590 = 0,62893082 (vérif Excel)
>
> Or je trouve "-0,371464487743558"
>
> ???
>
> Certes si on fait le complément on retrouve:
> 1 -0,371464487743558 = 0,62893082
>
> D'ou (0,3... * -1) + 0,6... = 1
>
> La solution bâtarde serait de faire:
> ((-0,371464487743558 * 2) * -1) = 0,6...
>
> Mais bon, normalement ça ne devrait pas donner ça...
>
> Ensuite je passe ça en Cint pour alimenter ma ProgressBar, toutefois


c'est
> pas terrible de lui filer des négatifs...
>
> Et la liste est bien inférieure à sa capacité, je teste si >32000


stop
> le chargement, donc ce n'est pas le listcount qui peut produire des
> aberrations...
>
> Je ne comprends pas pourquoi je me retrouve avec un négatif en


divisant
> un positif par un autre positif ???
>
> Voici le code:
>
> Dim pas As Double, totalPas As Double, avance As Integer
> ............
> pas = 1000 / List1.ListCount - 1
> totalPas = 0
> .........
> for i...
> .........
> totalPas = totalPas + pas
> avance = CInt(totalPas)
> ProgressBar1.Value = avance
> next i
>
>
>
> Si vous avez une idée ???
>
>
> Merci beaucoup, au revoir et à bientôt :o)
> ------
> Romans, logiciels, email, site personnel
> http://irolog.free.fr/joe.htm

--------------------------------------------------------------------------


----------
>
>








Publicité
Poster une réponse
Anonyme