XL 2010 Lecture scientifique du chiffre et fonction CDbl

TheProdigy

XLDnaute Impliqué
Bonjour,

J’ai dans un code CDbl(Cells(i, 10)), je veux comprendre la fonction CDbl j’appuie sur F1 je trouve -1.79769313486231E308 à
-4,94065645841247E-324 pour les valeurs négatives ; 4,94065645841247E-324 à 1,79769313486232E308 pour les valeurs positives.

Je vais sur Excel pour comprendre le chiffre je tape -4,94065645841247E-324 il n’accepte pas. Quelqu’un pourrait m’expliquer le format normal de ces chiffres

Merci
 

Dranreb

XLDnaute Barbatruc
Effectivement Excel semble récalcitrant aux nombres dits dénormalisés.
Il ne prend pas de nombres positif en dessous de 2,22507385850721E-308
Mais CDbl les accepte à ma connaissance.
4,94065645841247E-324 est effectivement la plus petite valeur positive codable en Double. Elle correspond à 2^-1074
Des informations dans ce classeur.
 

Pièces jointes

  • ValeursExcelVsVBA.xlsm
    92.6 KB · Affichages: 18

TheProdigy

XLDnaute Impliqué
Merci beaucoup @Dranreb ,


C'est quoi la différence entre CDbl(Cells(i, 10)) et Cells(i, 10) à chaque fois que je saisis une valeur je trouve le même résultat en VBA . Si dans un code VBA j'ai Cells(i, 10) c'est la même chose que CDbl(Cells(i, 10)) non?

Pourquoi je vais convertir un chiffre du moment que CDbl donne le même résultat que celui affiché sur la cellule?

PJ Fichier exemple


Merci.
 

Pièces jointes

  • CDbl.xlsm
    17.3 KB · Affichages: 15
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Effectivement ça ne sert à rien en entrée. Via un Variant, le type de donnée d'une valeur de cellule est déjà toujours d'un de ceux là seulement:
Double, Currency, Date, String, Boolean, Error ou Empty
C'est en sortie, à l'écriture d'une info dans une cellule qu'il peut être judicieux de convertir des String issus de TextBox en Double s'ils doivent représenter des nombres.
Deux fonctions permettent de connaitre le type de la donnée d'un Variant: VarType et TypeName.
VB:
MsgBox TypeName(Cells(1, 4).Value)
affiche "Double". Value est indispensable, là, parce que
VB:
MsgBox TypeName(Cells(1, 4))
affiche "Range".
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16