De retour de vacances, je me trouve confronté à un problème apparemment idiot, mais sur lequel je bute et auquel je ne trouve pas actuellement de solution. J'espère que quelqu'un saura me dépanner ou aura une piste à me proposer :
J'ai simplement besoin de multiplier 12 nombres entiers entre eux et d'obtenir le résultat exact (qui avoisine les 1E24). Cette macro simple pour illustrer mon problème tronque au bout de 15 décimales le résultat qui termine par 8 zéros :
VB:
Sub test()
dim a as Double
a = 47# * 53# * 59# * 61# * 67# * 71# * 73# * 79# * 83# * 89# * 97# * 101#
msgbox format(a, "00000000000000000000000")
end sub
Comment puis-je contourner ce problème et obtenir une précision de 24 décimales ?
Merci à vous trois pour ces réponses rapides.
JCGL : Il me semble bien en effet que le fichier du grand Ti devrait avec un léger arrangement répondre à mon besoin. Je regarderai ceci après la balade de mes toutous qui réclament et vous tient au courant.
J'ai pu adapter le programme de Ti que JCGL m'a fourni, pour mes besoins, mais j'ai environ 200000 multiplications et autant de divisions à réaliser. Même en virant tout ce qui gère les nombres décimaux et les nombres négatifs dans sa macro (je ne multipliais que des nombres entiers premiers), le temps qu'elle prend m'a incité à chercher une autre solution. J'ai recodé le bout de programme qui utilisait ces opérations complètement autrement : en utilisant des fonctions de texte plutôt que des calculs mathématiques et mon problème est désormais résolu (moins d'une seconde de calcul désormais). Par contre, je garde au chaud ce fichier : c'est du lourd.
Merci donc.
Et oui, je me suis mal exprimé, je voulais parler de 24 chiffres significatifs et non de décimales