[VB.NET]: Sommare due textbox considerando segni aritmetici e decimali

di Maninblack74 il
8 risposte

Buonasera a tutti,

uso questo semplice per sommare due semplici numeri:


        Dim numero1 As Double
        Dim numero2 As Double
        Dim risultato As Double

        numero1 = TextBox1.Text
        numero2 = TextBox2.Text
        risultato = numero1 + numero2
        TextBox3.Text = risultato

Premetto che è la prima volta che mi affaccio a criteri aritmetici. Quello che a me servirebbe è una somma un pò piu' complessa, vi faccio un esempio qui di seguito:

TextBox1.Text = "-2.25"
TextBox2.Text = "+1.75"
TextBox3.Text = "????????"

I dati che vedete è la prescrizione dell lente destra di un occhiale, dove "-2.25" è il lontano e "+1.75" è il valore dell'addizione per vicino. Il risultato è la somma/differenza di questi due dati.

Non voglio codici, chiedo la gentilezza di indirizzarmi su qualche sito per studiare bene i procedimenti matematici in VB NET

Grazie

Maninblack74

8 Risposte

  • Scusate ho postato questo argomento su argomenti generali, ho già riscritto nella pagina corrispondente:

    https://www.iprogrammatori.it/forum-programmazione/posting.aspx?o=new&f=65

  • Dovresti fare calcoli matematici, che per logica arrivano a trovare il dato che tu desideri. Inoltre devi trasformare i valori in numeri e non string. 

  • Per la guida: https://learn.microsoft.com/it-it/dotnet/csharp/programming-guide/types/how-to-convert-a-string-to-a-number

    In sintesi:

    Per convertire una stringa in un numero algebrico (con segno, virgola e rispettando le impostazioni locali) in VB.NET, usa i metodi di parsing nativi come Double.Parse o CDbl. Per evitare blocchi dell'applicazione in caso di testo non valido, è consigliato Double.TryParse.

    Esempio:

    Dim testo1 As String
    Dim testo2 As String
    Dim numero1 As Double
    Dim numero2 As Double
    Dim risultato as Double
    
    Testo1 = TextBox1.Text
    
    If Double.TryParse(testo1, numero1) Then
        ' La conversione è avvenuta con successo puoi proseguire
    Else
       ' qui inviti l'utente ad inserire un valore numerico valido
    End If

    Lo ripeti per testo2 e poi sommi i valori

    Poi metti il risultato su testo3

    Risultato=numero1+numero2
    Testo3=Risultato.ToString("+#.0;-#.0;0.0")
  • Ringrazio tutti per la disponibilità

    Grazie veramente

  • Ciao ragazzi,

    dopo aver "studiato" un pò quello che ho trovato e in base ai vostri preziosi consigli, ho "partorito" questo pezzo di codice, vi chiedo la gentilezza di dargli un occhiata e se potete darmi consigli per eventuali errori.

        Dim stringa1 As String = "10.55"
        Dim stringa2 As String = "5.25"
    
        stringa1 = TextBox1.Text
        stringa2 = TextBox2.Text
    
        Dim numero1 As Double = Double.Parse(stringa1, CultureInfo.InvariantCulture)
        Dim numero2 As Double = Double.Parse(stringa2, CultureInfo.InvariantCulture)
    
        Dim somma As Double = numero1 + numero2
    
        TextBox3.Text = somma.ToString(CultureInfo.InvariantCulture)
    
        If Char.IsDigit(TextBox3.Text, 0) Then
            TextBox3.Text = "+" & TextBox3.Text
        End If

    Grazie

  • Grazie sihsandrea

    posso ancora farlo non devo consegnare il progetto a nessuno quindi inserirò sicuramente la formattazione

    Grazie a tutti veramente

  • Ho formattato funziona alla grande, meno codice c'è meglio è. GRAZIE

Devi accedere o registrarti per scrivere nel forum
8 risposte