Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Mettere il punto (o virgola) ad una variabile Double
Forum - C# / VB.NET - Mettere il punto (o virgola) ad una variabile Double

Avatar
WCodeLyokoYT (Normal User)
Newbie


Messaggi: 16
Iscritto: 27/09/2014

Segnala al moderatore
Postato alle 17:25
Sabato, 27/09/2014
Sto creando una calcolatrice in VB.Net e come da titolo non riesco ad inserire il punto(o la virgola) nelle variabili Valore1 e Valore2.

Allego il codice:

Codice sorgente - presumibilmente VB.NET

  1. Public Class Form1
  2.     Dim Valore1 As Double
  3.     Dim Valore2 As Double
  4.     Dim Totale As Double
  5.     Dim Op As String
  6.     Dim Val2 As Boolean
  7. #Region "Numeri"
  8.     Private Sub Button17_Click(sender As Object, e As EventArgs) Handles Button17.Click
  9.         If Val2 = 0 Then
  10.             Valore1 = Valore1 & "1"
  11.             RichTextBox1.Text = Valore1
  12.         Else
  13.             Valore2 = Valore2 & "1"
  14.             RichTextBox1.Text = Valore2
  15.         End If
  16.     End Sub
  17.  
  18.     Private Sub Button18_Click(sender As Object, e As EventArgs) Handles Button18.Click
  19.         If Val2 = 0 Then
  20.             Valore1 = Valore1 & "2"
  21.             RichTextBox1.Text = Valore1
  22.         Else
  23.             Valore2 = Valore2 & "2"
  24.             RichTextBox1.Text = Valore2
  25.         End If
  26.     End Sub
  27.  
  28.     Private Sub Button19_Click(sender As Object, e As EventArgs) Handles Button19.Click
  29.         If Val2 = 0 Then
  30.             Valore1 = Valore1 & "3"
  31.             RichTextBox1.Text = Valore1
  32.         Else
  33.             Valore2 = Valore2 & "3"
  34.             RichTextBox1.Text = Valore2
  35.         End If
  36.     End Sub
  37.  
  38.     Private Sub Button20_Click(sender As Object, e As EventArgs) Handles Button20.Click
  39.         If Val2 = 0 Then
  40.             Valore1 = Valore1 & "4"
  41.             RichTextBox1.Text = Valore1
  42.         Else
  43.             Valore2 = Valore2 & "4"
  44.             RichTextBox1.Text = Valore2
  45.         End If
  46.     End Sub
  47.  
  48.     Private Sub Button21_Click(sender As Object, e As EventArgs) Handles Button21.Click
  49.         If Val2 = 0 Then
  50.             Valore1 = Valore1 & "5"
  51.             RichTextBox1.Text = Valore1
  52.         Else
  53.             Valore2 = Valore2 & "5"
  54.             RichTextBox1.Text = Valore2
  55.         End If
  56.     End Sub
  57.  
  58.     Private Sub Button22_Click(sender As Object, e As EventArgs) Handles Button22.Click
  59.         If Val2 = 0 Then
  60.             Valore1 = Valore1 & "6"
  61.             RichTextBox1.Text = Valore1
  62.         Else
  63.             Valore2 = Valore2 & "6"
  64.             RichTextBox1.Text = Valore2
  65.         End If
  66.     End Sub
  67.  
  68.     Private Sub Button23_Click(sender As Object, e As EventArgs) Handles Button23.Click
  69.         If Val2 = 0 Then
  70.             Valore1 = Valore1 & "7"
  71.             RichTextBox1.Text = Valore1
  72.         Else
  73.             Valore2 = Valore2 & "7"
  74.             RichTextBox1.Text = Valore2
  75.         End If
  76.     End Sub
  77.  
  78.     Private Sub Button24_Click(sender As Object, e As EventArgs) Handles Button24.Click
  79.         If Val2 = 0 Then
  80.             Valore1 = Valore1 & "8"
  81.             RichTextBox1.Text = Valore1
  82.         Else
  83.             Valore2 = Valore2 & "8"
  84.             RichTextBox1.Text = Valore2
  85.         End If
  86.     End Sub
  87.  
  88.     Private Sub Button25_Click(sender As Object, e As EventArgs) Handles Button25.Click
  89.         If Val2 = 0 Then
  90.             Valore1 = Valore1 & "9"
  91.             RichTextBox1.Text = Valore1
  92.         Else
  93.             Valore2 = Valore2 & "9"
  94.             RichTextBox1.Text = Valore2
  95.         End If
  96.     End Sub
  97.  
  98.     Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
  99.         If Val2 = 0 Then
  100.             Valore1 = Valore1 & ","
  101.             RichTextBox1.Text = Valore1
  102.         Else
  103.             Valore2 = Valore2 & ","
  104.             RichTextBox1.Text = Valore2
  105.         End If
  106.     End Sub
  107.  
  108.     Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
  109.         If Val2 = 0 Then
  110.             Valore1 = Valore1 & "0"
  111.             RichTextBox1.Text = Valore1
  112.         Else
  113.             Valore2 = Valore2 & "0"
  114.             RichTextBox1.Text = Valore2
  115.         End If
  116.     End Sub
  117.  
  118. #End Region
  119.  
  120. #Region "Operazioni"
  121.     Private Sub Button26_Click(sender As Object, e As EventArgs) Handles Button26.Click
  122.  
  123.         Op = "+"
  124.         Val2 = 1
  125.         RichTextBox1.Text = "0"
  126.  
  127.     End Sub
  128.  
  129.     Private Sub Button27_Click(sender As Object, e As EventArgs) Handles Button27.Click
  130.         Op = "-"
  131.         Val2 = 1
  132.         RichTextBox1.Text = "0"
  133.     End Sub
  134.  
  135.     Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click
  136.         Op = "*"
  137.         Val2 = 1
  138.         RichTextBox1.Text = "0"
  139.     End Sub
  140.  
  141.     Private Sub Button16_Click(sender As Object, e As EventArgs) Handles Button16.Click
  142.         Op = "/"
  143.         Val2 = 1
  144.         RichTextBox1.Text = "0"
  145.     End Sub
  146. #End Region
  147.  
  148.  
  149.     Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
  150.         If Op <> "" Then
  151.             If Op = "+" Then
  152.                 Totale = Valore1 + Valore2
  153.             End If
  154.             If Op = "-" Then
  155.                 Totale = Valore1 - Valore2
  156.             End If
  157.             If Op = "*" Then
  158.                 Totale = Valore1 * Valore2
  159.             End If
  160.             If Op = "/" Then
  161.                 Totale = Valore1 / Valore2
  162.             End If
  163.             RichTextBox1.Text = Totale
  164.             Valore1 = "0"
  165.             Valore2 = "0"
  166.             Val2 = 0
  167.             Op = 0
  168.         End If
  169.     End Sub
  170. End Class


PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1459
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 18:29
Sabato, 27/09/2014
in che senso non riesci a "mettere" il punto o la virgola? Dove hai trovato quel codice? Lo hai modificato? Se fai la stessa cosa col punto di ciò che hai fatto con i numeri non viene fuori esattamente ciò che vuoi? Non riesco a capire il problema, per questo di chiedo se il codice è copiato.

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 951
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 21:16
Sabato, 27/09/2014
Ciao!

Il tuo errore sta nella conversione implicita Valore2 = Valore2 & "," nella funzione Button11_Click.
Dopo l'operazione, Valore2 rimane invariato, e il comando della virgola non viene registrato.

Ti consiglio di cambiare approccio al problema; ad esempio immetti i dati in input su una stringa.


Nulla va più veloce della luce, quindi rilassati.
PM Quote
Avatar
WCodeLyokoYT (Normal User)
Newbie


Messaggi: 16
Iscritto: 27/09/2014

Segnala al moderatore
Postato alle 22:21
Sabato, 27/09/2014
Allora intanto grazie per le risposte. Poi il codice l'ho creato io e il problema è nella funzione Button11_click come ha detto Marco.
Semplicemente non mette la virgola nella variabile, perché vado a riscrivere la variabile nella textbox essa non appare.
Ho provato a dichiarare le variabili come stringhe, ma non riesco a fare l'operazione matematica di cui ho bisogno.
Sapreste aiutarmi?

Grazie.

PM Quote
Avatar
WCodeLyokoYT (Normal User)
Newbie


Messaggi: 16
Iscritto: 27/09/2014

Segnala al moderatore
Postato alle 22:51
Sabato, 27/09/2014
Ok credo di aver trovato una possibile soluzione, anche se molto complessa...

PM Quote
Avatar
dnha (Member)
Pro


Messaggi: 137
Iscritto: 24/07/2014

Segnala al moderatore
Postato alle 17:30
Domenica, 28/09/2014
Ciao :)
posta la soluzione che potrebbe essere utile ad altri :k:


“La principale differenza tra una cosa che potrebbe rompersi e una cosa che non può in alcun modo rompersi è che quando una cosa che non può in alcun modo rompere si rompe, di solito risulta impossibile da riparare.” [Douglas Adams, Praticamente innocuo]
PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1459
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 19:29
Domenica, 28/09/2014
Ma non puoi semplicemente comporre un numero con numero = numero + x * 10^posizione? X è il numero del tasto, vanno da 0 a 9 e ogni volta che lo fai aggiungi uno alla posizione. Quando premi la virgola posizione diventa - 1 e ogni volta che applichi quella formula sottrai uno a posizione. Se hai necessità di stampare il numero puoi usare il metodo toString

Ultima modifica effettuata da TheDarkJuster il 28/09/2014 alle 19:31
PM Quote
Avatar
dnha (Member)
Pro


Messaggi: 137
Iscritto: 24/07/2014

Segnala al moderatore
Postato alle 19:54
Domenica, 28/09/2014
Avevo pensato anche io a questa soluzione


“La principale differenza tra una cosa che potrebbe rompersi e una cosa che non può in alcun modo rompersi è che quando una cosa che non può in alcun modo rompere si rompe, di solito risulta impossibile da riparare.” [Douglas Adams, Praticamente innocuo]
PM Quote