OVH Cloud OVH Cloud

WD8 Problème PartieEntiere()

11 réponses
Avatar
Georges Peyre
Bonjour,

Comment contourner ce bug de WD8 ( sauf erreur de ma part ) ?

Je veux récupérer la partie entière d'un nombre saisi avec des
décimales
L'aide précise ...
// Partie entière de 16.999
ResPartieEntière = PartieEntière(16.999)
// Renvoie 16
// Pour obtenir 17, utiliser la fonction Arrondi

en réalité en exécution Windev renvoie systématiquement la valeur
arrondie même s'il n'y a pas lieu à arrondir

SNombre est un champ de saisie +999,99
SNombre = -2.20
WDeg est un réel
WDeg=PartieEntière(sNombre)

WDeg contient -3 au lieu de -2

Le pb est le même si WDeg est un entier

Qu'en pensez-vous ?

Cordialement




--
Elle est pas belle la vie ?

10 réponses

1 2
Avatar
Georges Peyre
Je précise que ce problème existe si le nombre est Négatif
Dans le cas ou le nombre est positif la partie entière restituée est
correcte





Georges Peyre avait écrit le 17/08/2005 :
Bonjour,

Comment contourner ce bug de WD8 ( sauf erreur de ma part ) ?

Je veux récupérer la partie entière d'un nombre saisi avec des décimales
L'aide précise ...
// Partie entière de 16.999
ResPartieEntière = PartieEntière(16.999)
// Renvoie 16
// Pour obtenir 17, utiliser la fonction Arrondi

en réalité en exécution Windev renvoie systématiquement la valeur arrondie
même s'il n'y a pas lieu à arrondir

SNombre est un champ de saisie +999,99
SNombre = -2.20
WDeg est un réel
WDeg=PartieEntière(sNombre)

WDeg contient -3 au lieu de -2

Le pb est le même si WDeg est un entier

Qu'en pensez-vous ?

Cordialement




--
Elle est pas belle la vie ?
Avatar
Georges Peyre
Il se trouve que Georges Peyre a formulé :
Je précise que ce problème existe si le nombre est Négatif
Dans le cas ou le nombre est positif la partie entière restituée est correcte





Georges Peyre avait écrit le 17/08/2005 :
Bonjour,

Comment contourner ce bug de WD8 ( sauf erreur de ma part ) ?

Je veux récupérer la partie entière d'un nombre saisi avec des décimales
L'aide précise ...
// Partie entière de 16.999
ResPartieEntière = PartieEntière(16.999)
// Renvoie 16
// Pour obtenir 17, utiliser la fonction Arrondi

en réalité en exécution Windev renvoie systématiquement la valeur arrondie
même s'il n'y a pas lieu à arrondir

SNombre est un champ de saisie +999,99
SNombre = -2.20
WDeg est un réel
WDeg=PartieEntière(sNombre)

WDeg contient -3 au lieu de -2

Le pb est le même si WDeg est un entier

Qu'en pensez-vous ?

Cordialement






--
Elle est pas belle la vie ?
Avatar
Pascal F
Le 17/08/2005, Georges Peyre a supposé :
Je précise que ce problème existe si le nombre est Négatif
Dans le cas ou le nombre est positif la partie entière restituée est correcte




Il est indiqué dans l'aide:
<Résultat> : Réel

Partie entière recherchée. Correspond au plus grand entier inférieur ou égal à <Nombre>.

Le plus grand entier inférieur à -2.2 est bien -3,donc le résultat dans est correct. Maintenant que ce ne soit pas le résultat recherché,je suis d'accord.

--
Pascal

Ne garder que le prénom pour me joindre
Avatar
Pascal ROY
Pourquoi ne pas faire
Resultat = PartieEntiere( ValeurAbsolue( Nombre))
Dsl, je ne me souviens plus du nom de la Fonction
ValeurAbsolue en Windev.

Avec ceci, ca fonctionnera comme souhaité pour tout les
nombres (enfin si PCSoft ne s'est pas planté dans la
fonction "ValeurAbsolue ! ;-) )

Pascal


Pascal F a écrit :
Le 17/08/2005, Georges Peyre a supposé :

Je précise que ce problème existe si le nombre est Négatif
Dans le cas ou le nombre est positif la partie entière restituée est
correcte




Il est indiqué dans l'aide:
<Résultat> : Réel

Partie entière recherchée. Correspond au plus grand entier inférieur ou
égal à <Nombre>.

Le plus grand entier inférieur à -2.2 est bien -3,donc le résultat dans
est correct. Maintenant que ce ne soit pas le résultat recherché,je suis
d'accord.



Avatar
Georges Peyre
Bonjour,

Pascal F a exposé le 17/08/2005 :
Le 17/08/2005, Georges Peyre a supposé :
Je précise que ce problème existe si le nombre est Négatif
Dans le cas ou le nombre est positif la partie entière restituée est
correcte




Il est indiqué dans l'aide:
<Résultat> : Réel

Partie entière recherchée. Correspond au plus grand entier inférieur ou égal
à <Nombre>.

Le plus grand entier inférieur à -2.2 est bien -3,donc le résultat dans est
correct. Maintenant que ce ne soit pas le résultat recherché,je suis
d'accord.



Non pas d'accord : sans préciser l'arrondi, le résultat devrait être -2
et si on précise arrondi alors seulement le résultat devrait être -3

L'aide et la fonction ne sont pas en harmonie

Merci pour ta réponse

Cordialement



--
Elle est pas belle la vie ?
Avatar
Georges Peyre
Bonjour,

Dans son message précédent, Pascal ROY a écrit :
Pourquoi ne pas faire
Resultat = PartieEntiere( ValeurAbsolue( Nombre))
Dsl, je ne me souviens plus du nom de la Fonction
ValeurAbsolue en Windev.



la forme est Resultat = Abs(Nombre)

Avec ceci, ca fonctionnera comme souhaité pour tout les
nombres (enfin si PCSoft ne s'est pas planté dans la
fonction "ValeurAbsolue ! ;-) )


Non non, Avec Abs çà marche

Merci de ton aide

Cordialement




Pascal F a écrit :
Le 17/08/2005, Georges Peyre a supposé :

Je précise que ce problème existe si le nombre est Négatif
Dans le cas ou le nombre est positif la partie entière restituée est
correcte




Il est indiqué dans l'aide:
<Résultat> : Réel

Partie entière recherchée. Correspond au plus grand entier inférieur ou
égal à <Nombre>.

Le plus grand entier inférieur à -2.2 est bien -3,donc le résultat dans est
correct. Maintenant que ce ne soit pas le résultat recherché,je suis
d'accord.







--
Elle est pas belle la vie ?
Avatar
Erwan
>Le 17/08/2005, Georges Peyre a supposé :
Il est indiqué dans l'aide:
<Résultat> : Réel

Partie entière recherchée. Correspond au plus grand entier inférieur ou égal


à <Nombre>.

Le plus grand entier inférieur à -2.2 est bien -3,donc le résultat dans est


correct. Maintenant que ce ne soit pas le résultat recherché,je suis d'accord.




Pourquoi ne pas utiliser le code suivant :

SNombre est un réel
SNombre = -2.20
WDeg est un réel
WDeg=Val(Gauche(SNombre,Position(NumériqueVersChaîne(SNombre),".")))

Info(WDeg)

Erwan.

--
Message monitoré par axinews : http://www.axinews.com/
Avatar
jacques trepp
Erwan a écrit :
Le 17/08/2005, Georges Peyre a supposé :
Il est indiqué dans l'aide:
<Résultat> : Réel

Partie entière recherchée. Correspond au plus grand entier inférieur ou égal



à <Nombre>.

Le plus grand entier inférieur à -2.2 est bien -3,donc le résultat dans est



correct. Maintenant que ce ne soit pas le résultat recherché,je suis d'accord.


Pourquoi ne pas utiliser le code suivant :

SNombre est un réel
SNombre = -2.20
WDeg est un réel
WDeg=Val(Gauche(SNombre,Position(NumériqueVersChaîne(SNombre),".")))

Info(WDeg)

Erwan.



tu as raison, mais il s'agit d'un enième contournement.
Georges a raison : la fonction Partie entière de -2.20 ou de -2.80 est
égale à 2, sauf si on demande un arrondi.

c'est juste leur façon de calculer qui est fausse :
Partie entière recherchée. Correspond au plus grand entier inférieur ou
égal à <nombre>. Pourquoi inférieur ?
on devrait obtenir la partie du nombre avant la virgule, point-barre.
partie entiere(-2.80) = -2
partie entiere(arrondi(-2.80,2)) = -3

z'ont du embaucher des technocrates chez pcsoft ;)

--
Jacques Trepp
Albygest - 81160 - St Juery
jacques-pas de
(enlever '-pas de spam' pour me joindre)
http://www.albygest.com
Avatar
Kevin TYRIAN
Pascal a raison : La fonction PartieEntière de WinDev respecte la définition
mathématique de cette fonction.
Relisez : http://homeomath.imingo.net/partient.htm pour vous en convaincre.
Ent(-2) = -2
Ent(-2.4) = -3
Ca fait bizarre mais WinDev ne va tout de même pas réinventer les maths !

Kevin

"jacques trepp" a écrit dans le message de news:
43030f4d$0$26849$
Erwan a écrit :
Le 17/08/2005, Georges Peyre a supposé :
Il est indiqué dans l'aide:
<Résultat> : Réel

Partie entière recherchée. Correspond au plus grand entier inférieur ou
égal



à <Nombre>.

Le plus grand entier inférieur à -2.2 est bien -3,donc le résultat dans
est



correct. Maintenant que ce ne soit pas le résultat recherché,je suis
d'accord.


Pourquoi ne pas utiliser le code suivant : SNombre est un réel
SNombre = -2.20
WDeg est un réel
WDeg=Val(Gauche(SNombre,Position(NumériqueVersChaîne(SNombre),".")))

Info(WDeg)

Erwan.



tu as raison, mais il s'agit d'un enième contournement.
Georges a raison : la fonction Partie entière de -2.20 ou de -2.80 est
égale à 2, sauf si on demande un arrondi.

c'est juste leur façon de calculer qui est fausse :
Partie entière recherchée. Correspond au plus grand entier inférieur ou
égal à <nombre>. Pourquoi inférieur ?
on devrait obtenir la partie du nombre avant la virgule, point-barre.
partie entiere(-2.80) = -2
partie entiere(arrondi(-2.80,2)) = -3

z'ont du embaucher des technocrates chez pcsoft ;)

--
Jacques Trepp
Albygest - 81160 - St Juery
jacques-pas de
(enlever '-pas de spam' pour me joindre)
http://www.albygest.com


Avatar
jacques trepp
Kevin TYRIAN a écrit :
Pascal a raison : La fonction PartieEntière de WinDev respecte la définition
mathématique de cette fonction.
Relisez : http://homeomath.imingo.net/partient.htm pour vous en convaincre.
Ent(-2) = -2
Ent(-2.4) = -3
Ca fait bizarre mais WinDev ne va tout de même pas réinventer les maths !

Kevin




comme je ne suis pas matheux, je m'incline, mais ça fait bizarre. tu
racontes ça à un commerçant, il tire à vue :)
si il te rend -2.10 en monnaie, demandes-lui de ne te rendre que la
partie entière, juste pour rigoler !

--
Jacques Trepp
Albygest - 81160 - St Juery
jacques-pas de
(enlever '-pas de spam' pour me joindre)
http://www.albygest.com
1 2