FloatField: infos taille

cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 - 26 avril 2004 à 17:09
dominique.stock Messages postés 436 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 8 octobre 2008 - 13 oct. 2005 à 10:51
Je voudrais savoir comment peut-on savoir la taille de la partie decimal+entiere d' un champ numerique

Mauricio :) [ttp://cindypos.planetaclix.pt ttp://cindypos.planetaclix.pt]
[mailto:cindypos@planetaclix.pt mailto:cindypos@planetaclix.pt]

6 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
27 avril 2004 à 08:09
Taille d'un champ de type TFloatField :
ShowMessageFmt('%d octets', [SizeOf(TFloatField)]);

L'espace nécessaire pour le stockage des données est donné par la propriété DataSize du champ. Dans le cas d'un champ TFloatField, la valeur est toujours 8.
May Delphi be with you
0
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
16 nov. 2004 à 15:56
Merci DelphiProg, mais ce que je voudrais savoir c' est :
7N2 soit 2 nombres apres la virgule et 7 avant ...

Mauricio :) [ttp://cindypos.planetaclix.pt ttp://cindypos.planetaclix.pt]
[mailto:cindypos@planetaclix.pt mailto:cindypos@planetaclix.pt]
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
17 déc. 2004 à 23:14
T'es bien assis ?
Alors lis ceci : Understanding floating point values in a Delphi environment.
C'est costaud :-p
0
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
20 déc. 2004 à 13:22
Simplement genial !!!

Ça démontre un problème que je connaissait à savoir:
If myVar = 2.1
Then Faire quelques chose ...
Else Faire autres chose ...

Il se peut que le If ne soit jamais vrai parceque ma variable possède la valeur 2.10000000000000000000000000001 !!!

Je comprends mieux pourquoi, et même dans du code SQL, mes variables/champs de type double n' avait pas la valeur exacte du calcul. J' ai crée d' ailleurs à ce sujet une fonction d' arrondissement (aussi parce que Delphi ne sait pas arrondir 0.105 à 0.11 euro par exemple, il arrondit à 0.10) afin de modifier mon if en Arrondir(mayVar avec 1 décimal) = 2.1 !!!

Sinon, désolé DelphiProg, mais c' etait pas ça non plus que je cherchais : (
Je vais essayer de t' expliquer differemment: ce que je veux savoir, c' est choisir un champ d' une table de type float, et d' après la définition de ce champ (qui est dans la structure de la table, cette derniere visible/modifiable dans le programme Database Desktop fournit avec Delphi), savoir si c' est un float de type 4N1, ou 3N2 ou encore 7N2

Merci en tout cas pour l' intérêt que tu portes à ce problème.

PS: j'ai cherché partout sur le NET (ça fait un bonmoment deja) et pas moyen d' avoir une réponse. Il me semble d' ailleurs que j' ai envoyé un mail à Borland, mais je n' ai pas eu de réponse non plus).

Mauricio :) [ttp://cindypos.planetaclix.pt ttp://cindypos.planetaclix.pt]
[mailto:cindypos@planetaclix.pt mailto:cindypos@planetaclix.pt]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
20 déc. 2004 à 13:56
C'est encore moi,

Effectivement je viens de voir le lien de delphiprog tout simplement très interessant. C'est vrai qu'il ne sert pas dans la résolution de notre fameux problèmes afin de connaittre la taille f'un champ floattant mais c'est vraiment tres interessant.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
dominique.stock Messages postés 436 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 8 octobre 2008 7
13 oct. 2005 à 10:51
Bonjour,
nb étant le float en question stocké en 'string' et en partant du principe que c'est la ',' qui sert de séparateur de décimal.
nbentier:=length(copy(nb,1,pos(',',nb)-1));
nbdecimal:=(length(nb)-1-(nbentier));

c'est pas trés élégant mais ça fonctionne.

Dom
0
Rejoignez-nous