CALCULATRICE EN VB .NET 2010

cs_GG29 Messages postés 326 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 8 février 2011 - 13 juin 2010 à 22:20
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 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.

https://codes-sources.commentcamarche.net/source/51907-calculatrice-en-vb-net-2010

Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
14 juin 2010 à 13:08
Re, en effet isnumeric et un oubli.
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
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és 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
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és 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
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és 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
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és 26 Date d'inscription lundi 12 avril 2010 Statut Membre Derniè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és 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
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és 326 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 8 février 2011 17
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).
Rejoignez-nous