PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → division sur  0 !
division sur 0 !
Iniciado por karim.bouddou, jul., 19 2005 5:33 PM - 3 respostas
Publicado em julho, 19 2005 - 5:33 PM
Bonjour,

je veux calculer un taux de croissance entre deux date et affecter le résultat à un champ d'un etat, le problème est que de temps en temps j'obtien un méssage d'erreure pour certain date qui indique que la division sur 0 est interdit. Voici mon code

res est un entier = DateDifférence(Fenêtre2.DT_DEBUT,Fenêtre2.DT_FIN)
RubTcj = (Ln(RubPMoy) - Ln(nbPoidMdeb))/(res - 1)*100

RubTcj , RubPMoy, le nom de la rubrique dans mon etat
Ln : log néperien
nbPoidMdeb : est un reél

par exemple pour la date entre 12/05/2005 et 07/06/2005 pas de problém
pour 02/02/2004 et 28/07/2004 j'obtien l'erreur

Avez vous une solution
Merci d'avance
Publicado em julho, 19 2005 - 6:14 PM
Est-ce que tu as suivi en débug ton code pour savoir la valeur de res quand
ça plante ?
Déjà je pense qu'il a un erreur car si tu prends deux dates qui se suivent à
un jour, res sera égal à 1 et (res - 1)*100 sera égal à zéro donc division
impossible.
Mais ça n'a pas l'air d'etre le cas de tes valeurs de tests. Si ça vient des
Ln là je peux pas t'aider je suis nul en math.
Tiens moi au courant
B N J

"Bouddou" <karim.bouddou@voila.fr> a écrit dans le message de
news:42dcf661@news.pcsoft.fr...


Bonjour,

je veux calculer un taux de croissance entre deux date et affecter le

résultat à un champ d'un etat, le problème est que de temps en temps
j'obtien un méssage d'erreure pour certain date qui indique que la division
sur 0 est interdit. Voici mon code

res est un entier = DateDifférence(Fenêtre2.DT_DEBUT,Fenêtre2.DT_FIN)
RubTcj = (Ln(RubPMoy) - Ln(nbPoidMdeb))/(res - 1)*100

RubTcj , RubPMoy, le nom de la rubrique dans mon etat
Ln : log néperien
nbPoidMdeb : est un reél

par exemple pour la date entre 12/05/2005 et 07/06/2005 pas de problém
pour 02/02/2004 et 28/07/2004 j'obtien l'erreur

Avez vous une solution
Merci d'avance

Publicado em julho, 19 2005 - 6:48 PM
Bonjour,

Oui j'ai suivi en débug mon code la valeur de res quand ça plante pour un date de début = 02/02/2004 et une date de fin = 19/07/2005 le nombre de jours est 533.

le problèm est donc dans mon Ln en fait le Ln est définie pour R+ cad pour les valeures strictement positifs pour dépasser ce problème et ne pas tomber dans le cas de valeur <=0 j'ai fait :

res est un entier = DateDifférence(Fenêtre2.DT_DEBUT,Fenêtre2.DT_FIN)
SI ((RubPMoy = 0) _OU_ (nbPoidMdeb=0)) ALORS

RubTcj = 0
SINON
RubTcj = (Ln(RubPMoy) - Ln(nbPoidMdeb))/(res - 1)*100
FIN

une autre fois Merci infiniment
cordialement
karim.bouddou@voila.fr
Publicado em julho, 19 2005 - 6:49 PM
Bonjour,

Oui j'ai suivi en débug mon code la valeur de res quand ça plante pour un date de début = 02/02/2004 et une date de fin = 19/07/2005 le nombre de jours est 533.

le problèm est donc dans mon Ln en fait le Ln est définie pour R+ cad pour les valeures strictement positifs pour dépasser ce problème et ne pas tomber dans le cas de valeur <=0 j'ai fait :

res est un entier = DateDifférence(Fenêtre2.DT_DEBUT,Fenêtre2.DT_FIN)
SI ((RubPMoy = 0) _OU_ (nbPoidMdeb=0)) ALORS

RubTcj = 0
SINON
RubTcj = (Ln(RubPMoy) - Ln(nbPoidMdeb))/(res - 1)*100
FIN

une autre fois Merci infiniment
cordialement
karim.bouddou@voila.fr