在线求教 计算器如何首位不为零呢?
vb吧
全部回复
仅看楼主
level 1
祁蔫 楼主
想了很久想不出来
要求的是首位不能是零,但是若是小数点的话是可以允许的
2020年04月30日 11点04分 1
level 15
如果按下一个数字键时,显示框里的数值为0,并且没有小数点,则将0替换成按的数字,否则将数字拼接到显示框原有的数字后面
2020年04月30日 12点04分 2
请问这个有代码吗
2020年04月30日 12点04分
level 15
If Text1.Text = "0" Then
Text1.Text = Index
Else
Text1.Text = Text1.Text & Index
End If
2020年04月30日 12点04分 3
我试试看~
2020年04月30日 12点04分
@祁蔫 好像不行唉,还是会有很多0
2020年04月30日 12点04分
@祁蔫 我先确认一下,你的显示框一开始显示的是0,还是0.(带小数点),或者是空白?(主要是带不带小数点)
2020年04月30日 13点04分
@祁蔫 另外再问个问题,你的数字键按钮是控件数组么?我这个代码要求用控件数组
2020年04月30日 13点04分
level 1
祁蔫 楼主
@初音✨七奈 这个我私信不了
在这里吧
Dim Cal!, Equ$, sctl As Object
Sub jisuan()
If Len(Equ) > 11 Then
Text1.FontSize = 10
Else
Text1.FontSize = 12
End If
Text1.Text = Equ
End Sub
Private Sub ba_Click(Index As Integer)
Equ = Equ + "8"
Call jisuan
End Sub
Private Sub cheng_Click()
Equ = Equ + "*" '
Call jisuan
End Sub
Private Sub chu_Click()
Equ = Equ + "/"
Call jisuan
End Sub
Private Sub dengyu_Click()
Set sctl = CreateObject("msscriptcontrol.scriptcontrol")
sctl.language = "vbscript"
Cal = sctl.eval(Equ)
Text1.Text = Cal
If Len(Text1.Text) > 11 Then
Text1.FontSize = 11
Else
Text1.FontSize = 12
End If
End Sub
Private Sub dian_Click()
Equ = Equ + "."
Text1.Text = Text1.Text + "."
If (InStr(Equ, ".") = 1) Then
Equ = ""
End If
If InStr(Equ, ".") < Len(Equ) Then
Equ = Left(Equ, Len(Equ) - 1)
End If
End Sub
Private Sub er_Click(Index As Integer)
Equ = Equ + "2"
Call jisuan
End Sub
Private Sub Form_Load()
Equ = Equ + " "
Call jisuan
End Sub
Private Sub jia_Click()
Equ = Equ + "+"
Call jisuan
End Sub
Private Sub jian_Click()
Equ = Equ + "-"
Call jisuan
End Sub
Private Sub jiu_Click(Index As Integer)
Equ = Equ + "9"
Call jisuan
End Sub
Private Sub ling_Click()
Equ = Equ + "0"
Call jisuan
End Sub
Private Sub liu_Click(Index As Integer)
Equ = Equ + "6"
Call jisuan
End Sub
Private Sub qi_Click(Index As Integer)
Equ = Equ + "7"
Call jisuan
End Sub
Private Sub qingling_Click()
Equ = " "
Cal = 0
Call jisuan
End Sub
Private Sub san_Click(Index As Integer)
Equ = Equ + "3"
Call jisuan
End Sub
Private Sub si_Click(Index As Integer)
Equ = Equ + "4"
Call jisuan
End Sub
Private Sub Text1_Change()
If Text1.Text = "0" Then
Text1.Text = Index
Else
Text1.Text = Text1.Text & Index
End If
End Sub
Private Sub tuige_Click()
Equ = Left(Equ, Len(Equ) - 1)
Call jisuan
End Sub
Private Sub wu_Click(Index As Integer)
Equ = Equ + "5"
Call jisuan
End Sub
Private Sub yi_Click(Index As Integer)
Equ = Equ + "1"
Call jisuan
End Sub
2020年04月30日 13点04分 4
level 15
你倒是说清楚你这是“输入公式计算结果”的计算器啊……我那个代码是按照普通计算器来写的
你要这样的话,那么情况可就很复杂了,我建议你参考罗老师 @Luosen56 写的“一行公式计算器”,这个程序最近应该发过,你找找近期的帖子吧
2020年04月30日 13点04分 5
唉不好意思,谢谢您啦!
2020年04月30日 13点04分
吧务
level 13
2020年05月01日 10点05分 7
非常感谢!
2020年05月11日 13点05分
1