Passer d'un double a un reel?

Résolu
Signaler
Messages postés
36
Date d'inscription
lundi 23 août 2004
Statut
Membre
Dernière intervention
19 avril 2005
-
Messages postés
3
Date d'inscription
jeudi 12 mars 2009
Statut
Membre
Dernière intervention
3 décembre 2009
-
bonjour;
voici mon probleme,
j'ai besoing de travailler avec la valeur maximum ( x )d'une table1.
soit :

x:=table1.maxvalue; (qui est une variable double)

mais ma probleme c que j'ai besoind que x soit un "reel" et non pas un "doube" ?????

merci d'avance.

7 réponses

Messages postés
309
Date d'inscription
jeudi 6 juin 2002
Statut
Membre
Dernière intervention
24 septembre 2008
2
Le problème ne semble pas provenir du fait que tu es un Double et que tu le transtype en real.

Place un arrêt sur la ligne ou tu initialise s et regarde la valeur de table1x.minvalue. J'ai l'impression que tu récupères une valeur négative ou égal à zéro dans table1x.minvalue.

Bonne Prog, ;)

Olivier

PS : Lorsqu'une réponse vous convient, n'oubliez pas de la valider.
Messages postés
309
Date d'inscription
jeudi 6 juin 2002
Statut
Membre
Dernière intervention
24 septembre 2008
2
salut calajoue,

Si x est une variable que tu déclares, pourquoi ne la déclares tu pas en tant que real ? même si la valeur que tu récupères dans table1.maxvalue est un double, delphi transtypera le résultat en real.

Bonne Prog, ;)

Olivier

PS : Lorsqu'une réponse vous convient, n'oubliez pas de la valider.
Messages postés
36
Date d'inscription
lundi 23 août 2004
Statut
Membre
Dernière intervention
19 avril 2005

salut ; voila j'ai fait ce que tu m'a dis:
var s,d:real
s:=0.31;
while s<10.45 do
begin
d:=0;
for i:=1 to spinedit1.Value do
begin
d:=d+x1[i]*power(log10(s),i-1);
end;
series1.AddXY(s,d);
s:=s+0.01;
end;
F9=execute parfetement

mais ici les valeur de s sont donner ,alors que normalement :
0.31 est table1x.minvalue;
10.45 est table1x.maxvalue;

cad :
var s,d:real
s:=table1x.minvalue;
while s<table1x.maxvalue do
begin
d:=0;
for i:=1 to spinedit1.Value do
begin
d:=d+x1[i]*power(log10(s),i-1); *
end;
series1.AddXY(s,d);
s:=s+0.01;
end;
F9=il m'afiche un message d'erreur "division vergule flotante" a la ligne *.
??????!!
Messages postés
36
Date d'inscription
lundi 23 août 2004
Statut
Membre
Dernière intervention
19 avril 2005

non je croix pas ;
dans l'example la valeur min de la table est 0.31!
en plus meme si je laisse que maxvalue dans le programme;
il me fait la meme ereur!!!
merci
Messages postés
309
Date d'inscription
jeudi 6 juin 2002
Statut
Membre
Dernière intervention
24 septembre 2008
2
que représente table1x ?

j'ai testé en initialisant un real par un double et cela ne plante pas.

la seul raison pour que tu es ce plantage est du à la fonction Log10 si elle à en paramètre une valeur négative ou égale à zéro.

Lorsque tu me dis que non je croix pas as tu vérifié la valeur de retour de table1x.minvalue et la valeur de s après l'initialisation ?

Bonne Prog, ;)

Olivier

PS : Lorsqu'une réponse vous convient, n'oubliez pas de la valider.
Messages postés
36
Date d'inscription
lundi 23 août 2004
Statut
Membre
Dernière intervention
19 avril 2005

salut oliveier;
la valeur max de ma table me renvoi toujour 0 que ce soit pour le min ou le max(je c pas pourquoi!
en tout cas j'ai fais une autre methoe ,je prend le max+min de la series graphique que represante les resultats de la table1.
merci
Messages postés
3
Date d'inscription
jeudi 12 mars 2009
Statut
Membre
Dernière intervention
3 décembre 2009

salut tout le monde  svp
j'au un Table Paradox

Champ         Propriete
Ref              Caracter
Nom            Caracter
Montant       $ 
Nombre        Numerique

je veu fair un filterage par Montant >= à  Tedit1  
je veu fair un filterage par Nombre >= à  Tedit2