标题:在整理初学VB时,做的小程序,发现的一个问题
只看楼主
VB丶小宇
Rank: 3Rank: 3
来 自:河北省石家庄市
等 级:论坛游侠
帖 子:172
专家分:142
注 册:2013-3-11
结帖率:96.77%
已结贴  问题点数:20 回复次数:3 
在整理初学VB时,做的小程序,发现的一个问题
一个很基础的比较大小的小程序,如图:

控件数量:4个Label标签,2个Text文本框,1个Command按钮
核心源代码:
程序代码:
Private Sub Command1_Click()
Dim a As Double, b As Double     '定义两个变量a,b均为双精度型。
a = Rnd                          '设定a为一个随机数
b = Rnd                          '设定b为一个随机数
Text1.Text = a                   '将a赋值给Text1文本框中的文本
Text2.Text = b                   '将b赋值给Text2文本框中的文本
If a > b Then                    '判断语句If,如果在a>b的条件下
MsgBox "A大", vbOKOnly, "提示"   '弹出一个对话框,说A大
ElseIf a = b Then                '判断另一种情况,在满足a=b的条件下
MsgBox "A和B一样大", vbOKOnly, "提示"    '弹出一个对话框,A和B一样大
Else                             '否则,也就是在满足a<b的前提下
MsgBox "B大", vbOKOnly, "提示"   '弹出一个对话框B大
End If                           '结束判断语句If
Print a                          '在窗体上输出a
End Sub
百度了一下Rnd随机数,百度上是这么定义的:Rnd 函数返回小于 1 但大于或等于 0 的值。
那么问题就出现了

如图 Q:如果定义是Rnd函数返回小于1但大于或等于0的值,那么Text文本框中的数字应该是0.579518....  0.289562...那个小数点前面的那个0哪里去了?
虽然是一个很幼稚的问题,但还是要问。
搜索更多相关主题的帖子: 源代码 文本框 标签 
2014-03-18 21:24
vbvcr51
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:18
帖 子:364
专家分:1724
注 册:2013-11-3
得分:20 
如果后面是小数位是0是不显示的。比如:2.30,text控件里面直接的话,后面的0是不会显示的,vb认为是无意义的。解决办法:用format函数,定义格式。如format(2.30,"0.00")。这样就显示出2.30。

[ 本帖最后由 vbvcr51 于 2014-3-20 10:09 编辑 ]
2014-03-19 17:27
VB丶小宇
Rank: 3Rank: 3
来 自:河北省石家庄市
等 级:论坛游侠
帖 子:172
专家分:142
注 册:2013-3-11
得分:0 
回复 2楼 vbvcr51
哎,专家就是专家,自愧不如。

编程最蛋疼的事:不是编程多么累,而是编完后,一点运行,出现四个字:程序错误。。。
2014-03-19 17:38
VB丶小宇
Rank: 3Rank: 3
来 自:河北省石家庄市
等 级:论坛游侠
帖 子:172
专家分:142
注 册:2013-3-11
得分:0 
后续的改良程序:

核心代码:
程序代码:
Private Sub Command1_Click()
Dim a As Double, b As Double          '定义两个变量a,b为双精度型
a = Rnd                               '设定a为一个随机数
b = Rnd                               '设定b为一个随机数
Text1.Text = Format(a, "0.00")        '用Format函数,固定随机数a的格式为0.00,然后将此值赋给Text1文本框的文本
Text2.Text = Format(b, "0.00")        '用Format函数,固定随机数a的格式为0.00,然后将此值赋给Text2文本框的文本
If a > b Then                         '后续代码基本相同
MsgBox "A大", vbOKOnly, "提示"       
ElseIf a = b Then
MsgBox "A和B一样大", vbOKOnly, "提示"
Else
MsgBox "B大", vbOKOnly, "提示"
End If
Print Format(a, "0.00")               '用Format函数,固定随机数a的格式为0.00,然后将此值显示在Form1窗体上
End Sub

编程最蛋疼的事:不是编程多么累,而是编完后,一点运行,出现四个字:程序错误。。。
2014-03-20 19:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-428750-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.241499 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved