Utilisation du point pour les décimales

Résolu
CPoirier Messages postés 13 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 16 janvier 2008 - 15 janv. 2008 à 22:48
CPoirier Messages postés 13 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 16 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

6 réponses

CPoirier Messages postés 13 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 16 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 !

CPoirier
3
ThoT49 Messages postés 153 Date d'inscription dimanche 4 mars 2007 Statut Membre Dernière intervention 24 avril 2011 2
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>

Voila :) bonne soirée
0
CPoirier Messages postés 13 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 16 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 !
0
ThoT49 Messages postés 153 Date d'inscription dimanche 4 mars 2007 Statut Membre Dernière intervention 24 avril 2011 2
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é ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CPoirier Messages postés 13 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 16 janvier 2008
15 janv. 2008 à 23:16
Oui, par exemple si je lui dis :

2,3*3,4

il me donne : 2,6,4

si je lui dis 2.3*3.4

il me donne 7.82

Ou si vous avez une autre fonction eval à me proposer...mais elle doit faire toutes les fonctions mathématiques comme sin, cos etc...
0
ThoT49 Messages postés 153 Date d'inscription dimanche 4 mars 2007 Statut Membre Dernière intervention 24 avril 2011 2
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é.

Je dis faux?
0
Rejoignez-nous