Format d'un nombre [Résolu]

cs_chris_p 122 Messages postés lundi 25 octobre 2004Date d'inscription 27 juillet 2010 Dernière intervention - 22 juin 2005 à 17:04 - Dernière réponse : Garl17 2 Messages postés samedi 14 mai 2011Date d'inscription 21 juin 2011 Dernière intervention
- 21 juin 2011 à 03:01
Lut
Sur un log sous vb7, toutes mes varibles pour mes calculs sont des nombres de type string.
A l'affichage final, dans mon text de label, du fait qu'il y ait plusieurs chiffres après la virgule, il me le met dur 2 lignes et cela fait donc un résultat crad : moitié des chiffres de chaque ligne.
Quel est le moyen de locker sur une ligne ou d'afficher le résultat avec juste deux chiffres après la virgule ?

Merci d'avance

Chris
Afficher la suite 

11 réponses

Meilleure réponse
cs_chris_p 122 Messages postés lundi 25 octobre 2004Date d'inscription 27 juillet 2010 Dernière intervention - 27 juin 2005 à 16:36
3
Merci
Cool !
Le format de la 2eme technique passe tres bien.

Merci pour tous ces renseignements et votre rapidité.
A +
Ciao

Chris

Merci cs_chris_p 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Meilleure réponse
ScSami 1490 Messages postés mercredi 5 février 2003Date d'inscription 3 décembre 2007 Dernière intervention - 27 juin 2005 à 16:57
3
Merci
Heureux pour toi je suis mais, tu sais, il ne faut pas "Accepter" tes réponses mais celle des autres !!!!!!



++

Merci ScSami 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

cs_dragon 2336 Messages postés samedi 14 juillet 2001Date d'inscription 5 mai 2009 Dernière intervention - 22 juin 2005 à 17:27
0
Merci
format(chiffre,"#,00")


-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
cs_chris_p 122 Messages postés lundi 25 octobre 2004Date d'inscription 27 juillet 2010 Dernière intervention - 22 juin 2005 à 18:32
0
Merci
Merci, je vais tester ca de suite

Chris
ScSami 1490 Messages postés mercredi 5 février 2003Date d'inscription 3 décembre 2007 Dernière intervention - 22 juin 2005 à 18:35
0
Merci
Et si c'est bon, valide répone de Dragon en cliquant sur le bouton "Accepter"...
cs_dragon 2336 Messages postés samedi 14 juillet 2001Date d'inscription 5 mai 2009 Dernière intervention - 22 juin 2005 à 19:18
0
Merci
merci ScSami, bizzarre, je sens que ça sera bon, sinon tu aurais corrigé lol


-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
ScSami 1490 Messages postés mercredi 5 février 2003Date d'inscription 3 décembre 2007 Dernière intervention - 22 juin 2005 à 19:44
0
Merci
CLAIR, TU PEUX TOUJOURS COMPTER SUR MOI

mrd...

(par contre, reste à voir s'il trouvera ce satané bouton que personne, à tort, n'utilise!!!)
cs_chris_p 122 Messages postés lundi 25 octobre 2004Date d'inscription 27 juillet 2010 Dernière intervention - 27 juin 2005 à 14:11
0
Merci
Lut,


Merci mais j'ai du mal comprendre la commande.


Je dois faire une connerie parce que cela ne marche pas.


Je lance un calcul. Le résultat est stocké dans la variable strlbl14.


Ensuite, ce fameux str s'affiche dans une zone label de texte.


Le problème est que dans le label, il apparait plusieurs chiffres après la virgule et je souhaiterais en avoir que 2.
Peux-tu m'expliquer tres simplement stp car je ne suis qu'un newbie en VB.

Merci d'avance
Chris
ScSami 1490 Messages postés mercredi 5 février 2003Date d'inscription 3 décembre 2007 Dernière intervention - 27 juin 2005 à 16:19
0
Merci
Ton problème est assez simple je pense... On y avait pas
fait attention sur le moment mais en effet, il faut faire une
distinction pas forcément évidente au début...

Il faut différencier les nombres des chaines de caractères (qu'elles soient numériques, alphanumériques ou alphabétiques).



Si, en effet, tu travailes au niveau d'une chaine de caractère, la
fonction "Format(val,...)" de Dragon ne fonctionnera pas car elle
n'agit que sur les nombres (enfin, à ce que j'en sais car moi j'ai que
VB6...).



Donc, deux techniques pour t'en sortir :



1 - Convertir ta chaine en nombre via l'instruction Val(taVariableString)
[y'en a d'autres mais plus spécifiques... Cf. convertions de type de
donnée dans la MSDN {l'aide du VB}] puis d'appliquer la fonction
"Format()" tel que Dragon ta l'a dit. C'est, à mon sens, ce qu'il y a
de plus simple à faire :


taVariableString =


Format(Val(
taVariableString)
,"#,00")




2 - Traiter la chaine de caractères. Cette technique est bien plus
lourde et prendra plus de temps processeur... Le but est d'utiliser
quelques fonctions du VB bien utiles pour traiter les chaines de
caractères. On a, par exemple, InStrRev qui permet de trouver, en
partant de la fin (sinon c'est la fonction InStr qui fonctionne légèrement différemment!
)
de la chaine, la première occurence de ce que tu cherches. Autrement
dit, ça va te donner l'emplacement (en nombre de caractères) de la 1ère
apparition de la chose que tu recherches dans ta chaine mais en partant
de la fin de celle-ci. On a aussi la très utilisée fonction Mid(chaine, début, taille)
qui permet d'extraire une partie d'une chaine. Tu vois, là, c'est pas
simple. Donc, cette méthode t'oblige à ne pas avoir d'écris de virgule
ou de point après le dernier chiffre (ou alors avant si tu préfères
utiliser InStr tout court!).

Il faut donc déjà savoir si dans ta chaine tu utilises le point "." ou
la virgule "," pour séparer les entiers des décimales! [Ici on a pris
la virgule... mais à toi de voir donc!] :

taVariableString =


Mid(
taVariableString, 1,
InStrRev(
taVariableString, ","
) + 2)

Le "+2" détermine le nombre de chiffres apèrs la virgule.

Bon, ce code est a vérifier (hein Dragon ;-) car je l'ai pondu de tête et ce genre de routine sont très sensibles!



Mais sinon, aide-toi de la MSDN (l'aide du VB) pour la syntaxe et les particularités de ces fonctions!



Et si ça fonctionne, n'oublie pas d'Accepter la réponse.





Enjoy
Garl17 2 Messages postés samedi 14 mai 2011Date d'inscription 21 juin 2011 Dernière intervention - 21 juin 2011 à 02:47
0
Merci
Bonsoir!
En plus de ce code, en voici de plus simple pour résoudre ton problème:
Round(taVariable,2) Si tu veux afficher des décimaux à deux chiffres.
Moi mon problème est que mes calculs ne prennent pas en compte les nombre à virgule.Exemple:
4,5/2=2 et non 4,5/2=2,25
Or le résultat correcte est 2,25
J'ai besoin d'aide
Garl...
Garlgsa@gmail.com
Garl17 2 Messages postés samedi 14 mai 2011Date d'inscription 21 juin 2011 Dernière intervention - 21 juin 2011 à 03:01
0
Merci
Bonsoir à tous! Voici une solution:
TaVariable=Round(Val(Tavariable),2)
C'est pour afficher avec 2 chiffres après la virgule.
Moi problème est que le calcul:
4,5/2 m'affiche comme résultat 2 au leu de 2,25
Je ne comprend pas pourquoi?
Merci de votre aide
Garl...
Garlgsa@gmail.com

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.