Jolfulorc
Messages postés15Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention14 mai 2005
-
14 mai 2005 à 11:17
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 2006
-
15 mai 2005 à 12:29
Bonjour,
J'ai un petit problème : dans un programme, j'utilise une formule (celle de Fibonnaci pour les connaisseurs) pour approcher Pi.
Elle marche très bien, le seul bug c'est que je n'arrive pas à afficher plus de décimales que 14 (précision Double)...
J'aurais voulu savoir si il y a une manière de forcer Visual Basic à me mettre plus de décimales.
Juste avant de vous montrer le code, je rappelle / signale que la formule de Fibonnaci c'est une somme de plusieurs calculs successifs, pas un calculateur des décimales les unes après les autres. (Formule :
(Récupérée du site : www.pi314.net)
Le code :
<HR>
Dim s As Double
Dim sm1 As Double
Dim phi As Double
Dim k As Single
Private Sub Command1_Click()
Let phi = (1 + 5 ^ 0.5) / 2
Let k = 0
Let s = 0
Do
Let sm1 = s
Let s = ((-1) ^ k) / (2 * k + 1) * (((phi - 1) ^ (2 * k + 1)) + ((2 * phi - 3) ^ (2 * k + 1))) + s
Let k = k + 1
Loop Until s = sm1
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 15 mai 2005 à 12:29
Salut,
En vb6, tu peux essayer ce code, c'est le tien et mes modifs sont en rouge :
Dim s As Variant
Dim sm1 As Variant
Dim phi As Double
Dim k As Single
Private Sub Command1_Click()
Let phi = (1 + 5 ^ 0.5) / 2
Let k = 0
Let s = CDec(0)
Do
Let sm1 = s
Let s = ((-1) ^ k) / (2 * k + 1) * (((phi - 1) ^ (2 * k + 1)) + ((2 * phi - 3) ^ (2 * k + 1))) + s
Let k = k + 1
Loop Until s = sm1
Let s = 4 * s
List1.AddItem s
End Sub
Explication : en vb6 il existe le format Decimal mais, bizarrement on ne peut le déclarer en dim s as decimal.
L'astuce consiste à déclarer une variable en variant puis de l'initialiser avec s = cdec(tavaleur).
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?