Page 2 sur 2
Publié : ven. 10/sept./2004 16:51
par cookie
Chris a écrit
Pure arrondit systématiquement à 6 décimales
Faux: Pure arrondit à l'affichage mais pas en calcul interne
fait:
et tu trouveras
preuve qu'en interne , il calcule avec beaucoup plus de chiffres après la virgule (et heureusement

)
Publié : ven. 10/sept./2004 17:04
par Chris
Alors fait ça:
Code : Tout sélectionner
PI.f = ATan(1) * 4 *100: Debug PI
Debug PI*5
Debug ""
PI2.f = ATan(1) * 4: Debug PI2
Debug PI2*500
Le résultat final est exactement le même, ce qui prouve bien que le gain de précision est négligeable.

Publié : ven. 10/sept./2004 17:34
par erix14
Pour charger le nombre PI dans une variable le plus rapidement possible. Moi j'utiliserai ceci :
Code : Tout sélectionner
pi.f
! fldpi
! MOV ebx,v_pi
! fstp dword [ebx]
Debug StrF(pi,20)
Publié : sam. 11/sept./2004 8:26
par cookie
Le résultat final est exactement le même, ce qui prouve bien que le gain de précision est négligeable
Chris, je pense que tu fais une petite erreur de raisonnement:
en effet écrire
est effectivement la même chose (exactement) que
par contre essaye ça:
Code : Tout sélectionner
PI.f = ATan(1) * 4 *100: Debug PI
Debug PI*5
Debug ""
PI2.f = ATan(1) * 4: Debug PI2
Debug PI2*500
Debug ""
#pi=3.141593
Debug #pi
Debug #pi*500
et tu constatera que PB calcule avec plus que 6 chiffres après la virgule

Publié : sam. 11/sept./2004 14:52
par Le Soldat Inconnu
avec ta méthode :
1570.796387
avec la constante
1570.796387 (oups

)
au fait, il faut mettre #Pi.f = 3.14159265
Une constante en resident est aussi précise que ta méthode
et avec la valeur réelle
1570.7963267948965
la, on voit bien la limite de précision en calcul flottant du au 32bit (vivement le 64)
Publié : sam. 11/sept./2004 17:45
par cookie
@ Soldat Inconnu: je suis d'accord avec toi, à l'origine je réagissais au post de Guimauve et après ça a 'dégénéré' (gentiment

), ta constante fonctionne parce qu'effectivement PB calcule sur 8 chiffres après la virgule (et pas 6, je maintiens). Quand je pense que ma calculatrice Auchan à 3€ tient compte de 11 chiffres après la virgule...

Publié : sam. 11/sept./2004 22:35
par hardy
Je l'ai déjà dit, mais le répète : faudrait rapidement songer à ce que PB manipule des grands nombres.
Actuellement, il est impossible de l'utiliser pour des calculs scientifiques décents. Avec les propagations d'erreurs dues aux arrondis, 6 ou 8 chiffres, c'est ridicule dès qu'on fait un nombre conséquent d'opérations successives sur des floats.
Publié : dim. 12/sept./2004 11:32
par kelly
Publié : dim. 12/sept./2004 12:35
par Le Soldat Inconnu
sauf si on utilise la Lib F64