Insérer un nombre exagérément grand dans via VB

Rrominet Messages postés 133 Date d'inscription lundi 26 janvier 2009 Statut Membre Dernière intervention 24 novembre 2014 - 11 janv. 2006 à 17:30
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 11 janv. 2006 à 23:06
Hello,

Je souhaiterais insérer une valeur très grande dans un champ d'une table via VB6 (Accès par ADO).
L'ennui, c'est que VB6 me donne un dépassement de capacité dans mon code...

Les chiffres à insérer sont :
2.24711641857789E+307
4.49423283715579E+307
8.98846567431158E+307
1.79769313486232E+308

Hors VB m'autorise seulement à insérer :
2.2471164185778E+307
4.4942328371557E+307
8.9884656743115E+307
1.7976931348623E+308
c'est à dire avec une décimale de moins avant le "E", ce qui me bloque vu qu'il me faut les chiffres exacts du dessus pour que ça fonctionne...

Si quelqu'un a une solution ou sait si passera dans un autre langage (C, C++...), je suis preneur :-)

Merci d'avance !

6 réponses

BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
11 janv. 2006 à 17:46
'lut

tu peux (tout simplement...) le stocker en Text, mais il faut le traiter par derriere apres.

++

BasicInstinct
0
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
11 janv. 2006 à 19:42
En effet, c'est la solution recommandé dans ce cas car le Typ numérique le plus grand est le Double...
Regarde ton aide pour en savoir plus à propos des types de données.

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
11 janv. 2006 à 21:00
il n'y a que le dernier qui ne passe pas

juste la limite de capacité du Double (à 1 près)







2.24711641857789E+307 = 2 ^ 1021

4.49423283715579E+307 = 2 ^ 1022

8.98846567431158E+307 = 2 ^ 1023

1.79769313486231E+308 = 2 ^ 1024 - 1




Daniel
0
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
11 janv. 2006 à 21:40
Sur le site il y a pas mal de sources concernant les grands calculs... On te laisse regarder!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
11 janv. 2006 à 21:49
SsSami as tu bien compris que c'est des puissances de 2

est ce bien nécessaire de mettre dans une base de donnée les 1024 premières

puissances de 2

alors qu'elles sont calculables facilement par une simple addition.

quant à la précision, c'est illusoire, elles sont tronqués à 15 chiffres significatifs.


Dim x As Double

Dim e As Double

Dim i As Integer



e = 1E+294

x = 1

For i = 1 To 1023

x = x + x

Next

x = x - e + x 'correction pour 1024




Daniel
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
11 janv. 2006 à 23:06
il faudrait savoir aussi ce qu'il veut bien faire avec ces nombres.

application probable:

transformer un nombre en virgule flottante ????





en cas normal, les bits de l'exposant ne sont jamais tous à 1 (puissance 1024) sinon on obtient cette magnifique valeur:

1,#QNAN (Q pour Quiet)






Daniel
0
Rejoignez-nous