Trop Urgent!!! Pourkoi Double sur 14 chiffres apres la virgule et non 15 !!!!

Signaler
Messages postés
5
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
10 octobre 2003
-
Messages postés
5
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
10 octobre 2003
-
Salut,
Je recupere un polynome (format texte) via un certain systeme de regression non-lineaire (ecrit en C). Les coeffcients du polynome sont representes en double precision (donc avec 15 chiffres apres la virgule).
Le probleme est que quand je recopie ce polynome dans un module VB, ce con m'arrondit les coefficients à 14 chiffres apres la virgule!!!
Ce qui me fait rellement chier (j'ai vrmt besoin des 15!!)

Alors, qq'un sait pourkoi (surtout qu'a priori on dit ke dans vb le double est code sur 8octets comme dans le C).

merci d'avance
Charmout
Simply the best

2 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
En effet, les nombres Double sont codés sur 8 octets, tout comme en C, mais VB ne prend en compte que 14 chiffres après la virgule. (15 chiffres significatifs en fait)
Si tu veux récupérer les 15 chiffres, il faut récupérer tes paramètres en Décimal et non en Double

DARK SIDIOUS
0
Messages postés
5
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
10 octobre 2003

Bravo.....t un gagnant ;-)!!!

Pour ceux ki veulent tester :

Dim qq, kk, pp As Variant
Private Sub Form_Load()
qq = CDec("1.123456789012346")
kk = CDec("-1.123456789012345")
pp = qq + kk
End Sub

Pour info : http://www.estdevvb.com/articles/articles/types-de-donnees1.htm

J'avais commence a envisager une autre solution : generer des dll en C et les appeler dans VB (tres bien explique ic :http://www.laboratoire-microsoft.org/articles/dev/dll/) et ca marche aussi.

Merci beaucoup DARKSIDIOUS. je pense que je vais retenir ta solution pour l'instant (même si c'est trop gourmand en mêmoire)
a+

Charmout
Simply the best
0