Afficher plus de 14 décimales en VB ?

Résolu
Jolfulorc Messages postés 15 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 14 mai 2005 - 14 mai 2005 à 11:17
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 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

Let s = 4 * s
List1.AddItem s
End Sub
<HR>

Merci,
Jolfulorc

1 réponse

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
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 !?
3
Rejoignez-nous