CPoirier
Messages postés13Date d'inscriptionmardi 25 décembre 2007StatutMembreDernière intervention16 janvier 2008
-
15 janv. 2008 à 22:48
CPoirier
Messages postés13Date d'inscriptionmardi 25 décembre 2007StatutMembreDernière intervention16 janvier 2008
-
16 janv. 2008 à 00:20
Bonjour à tous,
Dans mon projet, je dois entrer une formule mathématique (ex: 2,7*3,2)
J'ai téléchargé le code d'une fonction eval() afin de l'intégrer à mon projet, mais le hic, c'est que les décimales dans cette fonction sont séparées par le point (.) et non la virgule(,).
Hors, j'effectue certaines opérations autre que la fonction eval(), qui doivent fonctioner avec la virgule, sinon je recois un message d'erreur qui me dit: La conversion en type double de 2.7 n'est pas valide.
Donc, je dois choisir soit la virgule soit le point pour faire mes calculs, pas les deux. Cependant, la fonction que j'ai téléchargé est très complexe et je n'arrive pas à la modifier à ma guise.
Alors, y a t-il un moyen d'indiquer que je veux travailler avec le point et non la virgule, et que Visual Basic soit capable de faire la conversion et d'effectuer des calculs ??
CPoirier
Messages postés13Date d'inscriptionmardi 25 décembre 2007StatutMembreDernière intervention16 janvier 2008 16 janv. 2008 à 00:20
Ce n'est pas exacteement ca.
C'est qu'une partie du code doit recevoir des chiffres avec des points, et que l'autre partie doit recevoir les mêmes chiffres avec des virgules pour pouvoir fonctionner.
J'ai cherché ailleurs et j'ai trouvé une solution:
L'utilisateur entre les chiffres avec des virgules, et quand le moment est venu d'effectuer eval() qui nécessite des points, je transforme la vigule avec la fonction replace(variable, ",", "." )
Ensuite, je la re-transforme.
Merci quand même pour ton aide, tu m'as fait résoudre un autre problème en me donnant ton code. J'avais essayé de faire quelque chose de semblable pour une autre cause, mais mon erreur, c'est que je le mettais dans l'événement text_changed !!!
Bonne soirée !
ThoT49
Messages postés153Date d'inscriptiondimanche 4 mars 2007StatutMembreDernière intervention24 avril 20112 15 janv. 2008 à 22:56
Alors oui tout a fait, ici tu as deux choix,
- Le premier, qui est le plus simple, tu dis que lorsque tu tappe un "." cela affiche "," comme cela tu fera sans aucuns soucis tes calculs avec des variables de type "double".
- Le deuxieme est si j'ai bien compris d'utiliser l'un ou l'autre, donc dans ce cas, tu met genre deux "radiobouton" avec l'un on choisi le point et l'autre la virgule, et si c'est la virgule et bien tu applique ce que j'ai dit pour la premiere solution.
Je te donne le code en faite dans ton évenement Keypress de ta textbox auquel tu va tapper le "." tu met :
<ol><li>If e.KeyChar = "." Then</li>
<li> e.KeyChar = ","</li>
<li>ElseIf Char.IsLetter(e.KeyChar) Then</li>
<li> e.Handled = True</li>
<li>End If</li></ol>
CPoirier
Messages postés13Date d'inscriptionmardi 25 décembre 2007StatutMembreDernière intervention16 janvier 2008 15 janv. 2008 à 23:00
OK, mais le problème c'est que la fonction eval que j'ai téléchargé marche seulement avec les points. Si mes points se transforment en vigule, elle ne marchera plus !
ThoT49
Messages postés153Date d'inscriptiondimanche 4 mars 2007StatutMembreDernière intervention24 avril 20112 15 janv. 2008 à 23:12
C'est vrai que c'est un soucis, mais juste au dessus j'avais compris que soit il fallait utiliser le point soit la virgule ou alors donner le choix de sélection ...
Bon tes calculs sont en double donc avec une virgule aussi nan sa ne fonctionne pas. Donc on n'abandonne pas la technique ^^
Après cela m'étonne que ta fonction ne demande que des points ... tu t'en es assuré ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
ThoT49
Messages postés153Date d'inscriptiondimanche 4 mars 2007StatutMembreDernière intervention24 avril 20112 15 janv. 2008 à 23:21
Attend, ce que tu me dis c'est au niveau du code, au niveau du code on met toujours des "." et au niveau de l'affichage, genre une textbox, toujours une ",". D'ou l'utilisation du code que je t'es donné.