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

charmout Messages postés 5 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 octobre 2003 - 3 janv. 2003 à 12:08
charmout Messages postés 5 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 octobre 2003 - 3 janv. 2003 à 23:09
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

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
3 janv. 2003 à 12:22
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
charmout Messages postés 5 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 octobre 2003
3 janv. 2003 à 23:09
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
Rejoignez-nous