cs_GG29
Messages postés326Date d'inscriptionvendredi 23 décembre 2005StatutMembreDernière intervention 8 février 2011
-
13 juin 2010 à 22:20
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 2013
-
14 juin 2010 à 13:08
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 14 juin 2010 à 13:08
Re, en effet isnumeric et un oubli.
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 14 juin 2010 à 11:20
... finalement si une calculatrice passionne les foules, je vais en faire une !
(Je rassure les admins, c'est une blague -:); quoi que...)
Amicalement,
Us.
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 14 juin 2010 à 11:16
haha... Je pense qu'on peut encore rajouter à cette liste, un test réalisé avec "IsNumeric" pour déterminer si le contenu est un nombre...
If IsNumeric(TextBox1.Text) Then
Bien que avec l'instruction VAL il n'y aura pas d'erreur, puisque VAL renverra toujours un nombre... nul si la chaine de caractère commence par une lettre, ou seulement les premiers chiffres si elle débute avec ces derniers.
Exemple :
VAL(54D10) renvoi 54
VAL(D5410) renvoi 0
Il reste que dans le calcul de la division, il faudra vérifier qu'on ne divise pas par zéro...
Amicalement,
Us.
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 14 juin 2010 à 07:50
Pour sûr Us_30 ^^ Surtout qu'un tostring ne mange pas de pain :)
.Text = (V1 * V2).tostring
Pense aussi eckostreet à border tes saisies, comme le disait GG29, tu peux taper du texte dans ta textbox !
Plantage assuré de ton code, donc soit tu utilise une maskedtextbox qui n'autorise que des saisies numériques, soit tu fait un try/catch de ta conversion, soit tu fais une procédure de vérification de touche numérique lors de l'événement keydown des textbox.
@++
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 14 juin 2010 à 00:21
D'ailleurs, y'en a qui vont s'arracher les cheveux avec les lignes du genre :
.Text = V1 ^ V2
En effet, on laisse à VB le soin et le privilège de faire la conversion implicite d'un calcul en string... tant pis pour leurs cheveux... haha
Amicalement,
Us.
eckostreet
Messages postés26Date d'inscriptionlundi 12 avril 2010StatutMembreDernière intervention 3 octobre 2016 14 juin 2010 à 00:08
bonjour
c'est vrai que j'ai pris un projet un peu trop simple... je voulais comprendre le fonctionnement de vb .net 2010 parce que chu abitué de programme sous visual basic 6, merci a us_30 pour ton commentaire et ta source plus simple que la mienne.
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 13 juin 2010 à 22:44
Bonjour eckostreet,
Je crains que ta source ne fasse pas de vieux os... et faudra pas le prendre comme une sanction, je t'en prie. La raison en est simple, c'est que le programme est légèrement trop limite... Néanmoins, si elle survit un peu, j'espère que tu pourras lire au moins mon post.
En terme d'amélioration immédiate, tu peux coder les choses ainsi :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim V1, V2 As Double
V1 = Val(TextBox1.Text)
V2 = Val(TextBox2.Text)
With TextBox3
If RadioButton1.Checked Then
.Text = V1 * V2
ElseIf RadioButton2.Checked Then
.Text = V1 / V2
ElseIf RadioButton3.Checked Then
.Text = V1 + V2
ElseIf RadioButton4.Checked Then
.Text = V1 - V2
ElseIf RadioButton5.Checked Then
.Text = V1 ^ V2
End If
End With
End Sub
En espérant que tu fasse la prochaine fois un projet un peu plus intéressant... Cherche avant tout une bonne idée...
Amicalement,
Us.
cs_GG29
Messages postés326Date d'inscriptionvendredi 23 décembre 2005StatutMembreDernière intervention 8 février 201117 13 juin 2010 à 22:20
Une nième calculette.
Pas de vérification de la saisie (entre autre chose qu'un nombre).
La fonction puissance existe en Dotnet (Math.Pow).
14 juin 2010 à 13:08
14 juin 2010 à 11:20
(Je rassure les admins, c'est une blague -:); quoi que...)
Amicalement,
Us.
14 juin 2010 à 11:16
If IsNumeric(TextBox1.Text) Then
Bien que avec l'instruction VAL il n'y aura pas d'erreur, puisque VAL renverra toujours un nombre... nul si la chaine de caractère commence par une lettre, ou seulement les premiers chiffres si elle débute avec ces derniers.
Exemple :
VAL(54D10) renvoi 54
VAL(D5410) renvoi 0
Il reste que dans le calcul de la division, il faudra vérifier qu'on ne divise pas par zéro...
Amicalement,
Us.
14 juin 2010 à 07:50
.Text = (V1 * V2).tostring
Pense aussi eckostreet à border tes saisies, comme le disait GG29, tu peux taper du texte dans ta textbox !
Plantage assuré de ton code, donc soit tu utilise une maskedtextbox qui n'autorise que des saisies numériques, soit tu fait un try/catch de ta conversion, soit tu fais une procédure de vérification de touche numérique lors de l'événement keydown des textbox.
@++
14 juin 2010 à 00:21
.Text = V1 ^ V2
En effet, on laisse à VB le soin et le privilège de faire la conversion implicite d'un calcul en string... tant pis pour leurs cheveux... haha
Amicalement,
Us.
14 juin 2010 à 00:08
c'est vrai que j'ai pris un projet un peu trop simple... je voulais comprendre le fonctionnement de vb .net 2010 parce que chu abitué de programme sous visual basic 6, merci a us_30 pour ton commentaire et ta source plus simple que la mienne.
13 juin 2010 à 22:44
Je crains que ta source ne fasse pas de vieux os... et faudra pas le prendre comme une sanction, je t'en prie. La raison en est simple, c'est que le programme est légèrement trop limite... Néanmoins, si elle survit un peu, j'espère que tu pourras lire au moins mon post.
En terme d'amélioration immédiate, tu peux coder les choses ainsi :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim V1, V2 As Double
V1 = Val(TextBox1.Text)
V2 = Val(TextBox2.Text)
With TextBox3
If RadioButton1.Checked Then
.Text = V1 * V2
ElseIf RadioButton2.Checked Then
.Text = V1 / V2
ElseIf RadioButton3.Checked Then
.Text = V1 + V2
ElseIf RadioButton4.Checked Then
.Text = V1 - V2
ElseIf RadioButton5.Checked Then
.Text = V1 ^ V2
End If
End With
End Sub
En espérant que tu fasse la prochaine fois un projet un peu plus intéressant... Cherche avant tout une bonne idée...
Amicalement,
Us.
13 juin 2010 à 22:20
Pas de vérification de la saisie (entre autre chose qu'un nombre).
La fonction puissance existe en Dotnet (Math.Pow).