begin process at 2010 02 09 18:07:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Foxpro

 > 

Archives

 > 

Divers

 > 

bug dans Foxpro ?????


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

bug dans Foxpro ?????

lundi 18 octobre 2004 à 16:25:14 | bug dans Foxpro ?????

Datadis

Bonjour à vous tous...

Peut-être quelqu'un va t'il trouver une réponse à ce bug lié aux décimales dans Foxpro (testé en version 7, 8 et 9).

par exemple
?63.2250000000000000000 affiche 63.2250000000000000000

?64.2250000000000000000 affiche 64.2259999999999990000

Foxpro fait la même "erreur" entre 64 et 81... allez comprendre pourquoi !!!!

De ce fait, la fonction round() pose aussi problème, en effet
? round(63.2250000000000000000,2) donne 63.23
? round(64.2250000000000000000,2) donne 64.22

par contre, si on limite les décimales à 10, aucun problèmes
? round(round(64.2250000000000000000,10),2) donne 64.23

J'ai remarqué ce phénomène uniquement entre 64 et 81. Les tests peuvent sembler tordu, mais dans mon domaine, on a souvent besoin de pus de 10 décimales pour travailler.

Toute réponse est bienvenue

Thierry
lundi 18 octobre 2004 à 18:09:17 | Re : bug dans Foxpro ?????

FredArmoni

Membre Club Administrateur CodeS-SourceS

tu peux faire ce test dans n'importe quel langage, tu auras le même résultat. C'est le défaut des valeurs numériques à virgule flottante... le double :
double 15 digits représentatifs.
double long 19 digits représentatifs.


Fred
membre actif d'AtoutFox
MS MVP VFP
lundi 18 octobre 2004 à 18:20:02 | Re : bug dans Foxpro ?????

FredArmoni

Membre Club Administrateur CodeS-SourceS
pour info la limite :

? round(64.225000000000+0.00000000000001,2)


Fred
membre actif d'AtoutFox
MS MVP VFP
lundi 18 octobre 2004 à 18:23:19 | Re : bug dans Foxpro ?????

Datadis

oui, mais pourquoi seulement avec 4, entre 64 et 81, entre 1024 et 1310, et enore plus loin (je n'ai testé qu'avec les valeurs entre 1 et 10000 ?

Les autres valeur, même en virgule flottante sont correctes.

En passant, si dans l'analyseur de requete de SQL tu tapes
PRINT ROUND(64.2250000000000000000,2) il affiche la bonne valeur, soit... 64.230000000000000000
lundi 18 octobre 2004 à 18:39:55 | Re : bug dans Foxpro ?????

FredArmoni

Membre Club Administrateur CodeS-SourceS
Effectivement,...

J'enquête...

@+

Fred
membre actif d'AtoutFox
MS MVP VFP
lundi 18 octobre 2004 à 18:46:49 | Re : bug dans Foxpro ?????

Datadis

ok... bonne enquête :-)

moi j'ai essayé jusqu'au binaire des parties entières... tout ce que j'ai remarqué comme point commun, c'est que ...

4 -> 0101
64 -> 0101 0000
1024 -> 0101 0000 0000
16384 -> 0101 0000 0000 0000
etc....

pour les chiffres 81 et 1310, je vois pas de point commun ...

vendredi 22 octobre 2004 à 14:15:53 | Re : bug dans Foxpro ?????

FredArmoni

Membre Club Administrateur CodeS-SourceS
Datadis,

aurez tu un bout de code qui met en valeur ce pb ?
comment as tu testé les valeurs 1 à 10000

dans mon test, seul la valeur 4.22500000 pose problème alors qu'en ligne de commande 64.22500000 aussi...


Fred
membre actif d'AtoutFox
MS MVP VFP
vendredi 22 octobre 2004 à 14:41:30 | Re : bug dans Foxpro ?????

Datadis

oui, le bout de code est assez simple...

LOCAL i,y,z

CLEAR
STRTOFILE("","c:\test.txt",0)

FOR i = 1 TO 100000
y = i + .225000000000000
z = i + .23
IF ROUND(y,2)<>z THEN
STRTOFILE(STR(i)+CHR(13)+CHR(10),"c:\test.txt",1)
ENDIF
NEXT


Il suffit ensuite d'aller lire le fichier résultat... ce sont les chiffres avec erreur d'arrondis
jeudi 28 octobre 2004 à 21:27:56 | Re : bug dans Foxpro ?????

FredArmoni

Membre Club Administrateur CodeS-SourceS
MS confirme ton bug
Le correctif devrait arriver dans la prochaine

Merci


Fred
membre actif d'AtoutFox
MS MVP VFP
jeudi 28 octobre 2004 à 21:30:25 | Re : bug dans Foxpro ?????

Datadis

comment as tu eu la confirmation de MS?

J'ai testé avec la version 9 (beta) de Foxpro... le bug est toujours là. Va t'il disparaître avec la version finale?

1 2

Cette discussion est classée dans : bug, foxpro, donne, décimales, round


Répondre à ce message

Sujets en rapport avec ce message

Tutorial FoxPro [ par the_smurf ] Bonjour à tousJeune développeur, je dois reprendre le développement et la maintenance de logiciels écrit en FoxPro 6.0 et 8.0.Je cherche un tutorial q imprimer en foxpro [ par jee0404 ] Bonjour, J'ai un problème , je fais une application en foxpro et j'aimerais configurer l'imprimante manuellement (c'est-à-dire par des lign Foxpro 3 et XP [ par Psy06 ] Bonjour Dans certains cas lors du lancement d'une application développée avec Visual foxpro 3.0 sous window XP je reçois des messages : "c:\windows\sy appli web [ par herve1 ] BonjourDeveloppeur Foxpro depuis MSdos (!) je cherche une solution pour developper des petites appli Foxpro a installer sur chez un hebergeur internet Instances multiples exe FoxPro [ par ThierryCAMBA ] Quelqu'un a-t-il une solution pour éviter qu'un exe FoxPro ne soit lancé plusieurs fois sous Windows. Il est possible bien sûr de tester l'existance d Utilisation de dlls vb en foxpro [ par jee0404 ] Bonjour,              Est-ce que je peut utiliser facilement les dll en visual basic dans mesprogrammes en foxpro ? lister les champs et le type d'une table foxpro [ par AliceT ] Bonjour, je cherche le moyen (via oledb) de lister les champs ansi que les caractéristiques d'une table foxpro.J'attends vos idéesbiz'Alice Tutorial [ par brend ] Bonjour,Je recherche un livre en francais (si possible) bien fait sur la programmation de foxpro.A noter: je connaissais bien foxpro et clipper dbase créer des exe sans le nom "Microsoft Visual foxpro" [ par MVTNV ] Bonjour,Je fais des petit programme et je voudrais avoire mon nom en haut à coté de l'icone au lieu de "Microsoft Visual Foxpro"Comment dois je le fai problème driver odbc visual foxpro [ par laurent7474 ] Bonjour,je travail avec un fichier excel, que j enregistre au format dbase 4 puis je passe par le driver visual foxpro pour travailler avec un logicie


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 11,544 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales