Coma en calculadora

Supongo que si programas en fox programaras en visual basic, espero que me ayudes, es muy urgente. Mira debo ser idiota porque no se como hacer que en mi calculadora pueda calcular con decimales, no se introducir la coma sin que se vaya el número anterior, ¿mira te pongo el código oki?
Option Explicit
Dim T1 As String
Dim Op As String
Dim F1 As Double
Dim res As Double
Private Sub cambio_Click(Index As Integer)
txt1 = txt1 * -1
End Sub
Private Sub Cmdc_Click()
txt1.Text = ""
End Sub
Private Sub cmdce_Click()
txt1.Text = "0"
T1 = ""
F1 = ""
Op = ""
End Sub
Private Sub Cmdigual_Click()
If Op <> "" Then
If Op = 0 Then
res = Val(F1) + Val(T1)
ElseIf Op = 1 Then
res = Val(F1) - Val(T1)
ElseIf Op = 2 Then
res = Val(F1) * Val(T1)
ElseIf Op = 4 Then
If T1 = 0 Then
res = "E"
Else
res = Val(F1) / Val(T1)
End If
End If
txt1.Text = res
T1 = ""
F1 = res
Op = ""
End If
End Sub
Private Sub cmdoff_Click(Index As Integer)
Unload Me
End Sub
Private Sub com_Click(Index As Integer)
txt1.Text = ","
End Sub
Private Sub num_Click(Index As Integer)
T1 = T1 & Index
txt1.Text = T1
End Sub
Private Sub oper_Click(Index As Integer)
F1 = txt1.Text
T1 = ""
Op = Index
End Sub
Private Sub txt1_Change()
txt1.Locked = True
End Sub
Gracias

1 Respuesta

Respuesta
1
Y perdona la demora. Lo que encontré en tu código fue lo siguiente:
1. En primer lugar, cuando pones la coma y luego utilizas la función Val, esta solo convierte el texto a numero hasta que encuentra la coma, razón por la cual solo te suma las partes enteras. Solución: En lugar de que aparezca la coma, debe aparecer un punto como carácter decimal.
2. Puede escribirse más de un punto (o coma) decimal en un numero. Y esto no debe suceder. Solución: Declara a nivel de formulario una variable de tipo boolean que puede llamarse "YaHayComa" e inicializa su valor a False. Cada vez que se presione el botón de la coma (o punto decimal) se debe verificar el estado de esta variable y si es falso entonces debe permitir colocar el punto (de la misma forma que con los demás dígitos, concatenando); si YaHayComa es Verdadero, entonces ya no pone nada. Ahora, esta variable debe volver a ser False cada vez que se presione un botón de operación, el botón igual, o cualquiera de los botones de borrado (C y CE) para garantizar que el siguiente numero también puede tener parte decimal.
3. Ocurre un error cada vez que se presiona el botón "CE" y es porque la variable F1 la declaras como double y me parece que debe ser String, igual que T1.
Creo que eso es todo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas