Aller au contenu

Messages recommandés

Posté(e)

bonjour,

comme le dit le sujet j'ai un problème avec le e de exposant et un fichier texte.

j'utilise VB en macro avec CATIA donc je ne peux et je ne veux pas utiliser excel.

 

Pour cerner le sujet:

j'ai un fichier texte comportant 20000 env. avec en 1º colonne des valeurs allant de 0 à 100 aléatoire sauf 5, 10,15...

je lis ce fichier ligne à ligne dès que je repère un 5 je stocke le resultat d'une operation sur les colonnes 4 et 5 dans un nouveau fichier txt, on va l'appeler sum5.txt.

ensuite dans sum5.txt qui comporte une colonne avec sur chaque ligne une valeur differente, je repere la valeur maximale de sum5.txt et je la stocke dans la variable max5

 

mais voilà il y a un truc que je ne comprends pas.

quand je fais mes operations sur mes colonnes 4 et 5 tant que le resultat est 0,** la valeur dans mon fichier texte (sum5.txt) s'ecrit comme cela (0,**)

par contre quand mon resultat est 0,0** la valeur de mon fichier texte (sum5.txt) s'écrit *,**E-2

 

et part la suite j'ai un probleme pour trouver la valeur maximale ( le E n'est pas considéré comme exposant).

 

Comment puis je faire pour régler ce problème?

est ce que ça peut venir du fait que je n'ai pas préciser le type de ma variable d'operations?

Si c'est ça quels types dois-je préciser

 

Merci d'avance

 

fabientoupeti

  • 1 mois après...
Posté(e)

Bonjour,

Il faut que tu forces le résultat de ton calcul avec la methode format:

 

Sub help()

Dim Puissance_dbl As Double
Dim Puissance1_dbl As Double
Dim Puissance_str As String
Dim Puissance1_str As String

Puissance_dbl = 16546549875.2565
Puissance1_dbl = 16545.25
'j'initialise la variable

Puissance_str = VBA.Format(Puissance_dbl, "##,##0.0000")
Puissance1_str = VBA.Format(Puissance1_dbl, "##,##0.0000")
'Attention:
'Le . est mon séparateur décimal dans mes options régionales et linguistiques

'Le nombre de zéro après le point indique le nombre de décimale que tu souhaites
'voir apparaitre, si la variable Puissance_dbl n'en contient pas autant, des zéro indiquent la précision souhaitée voir Puissance1_str

'Les # permettent de faire des paquets de chiffres, ici 3 car ##0

MsgBox Puissance_str & " et " & Puissance1_str
End Sub

 

Si tu veux pas de problème rends ton résultat en single ou double avec

 

Puissance_dbl = Csng(Puissance_str)
Puissance1_dbl = Cdbl(Puissance1_str)

 

[Edité le 20/5/2007 par sechanbask]

ATEGIE - Bureau d'Études Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

  • 2 semaines après...
Posté(e)

j'ai également trouvé ça dans l'aide VBA

 

RealToString(Value, Unit, Precision)

ATEGIE - Bureau d'Études Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité