为什么用VB计算时结果会出现很长的小数

作者&投稿:莱克 (若有异议请与网页底部的电邮联系)
在VB6.0中,如何在文本框中显示计算结果里纯小数中小数点前面的0?~

x=val(Text1.text)/val(Text2.Text) '必须要保证分母不为0
Text3.Text=iif(x<1,0 & x,x) '解决纯小数显示问题
Text3.Alignment=2 '居中显示

VB6中Mod 运算符功能是两数相除求余。
如果两数中带小数,Mod 会先四舍六入取整,再按整数求余,余数带小数的话只取整数部分。
注意,如果有书说四舍五入,是错的。
在 VB6 用的是所谓银行家算法,是四舍六入:
小数部分比 0.5 小就舍(例如0.4,0.49999),比 0.5 大就进(例如0.6,0.500001),
刚好是 0.5 可能舍可能进,如果小数点前面是偶数就舍(例如2.5 得 2),是奇数就进(例如3.5 得 4)。
Mod 运算符在VB.NET中有改动,余数可以带小数。
以上资料来自:http://tieba.baidu.com/p/2436311700
所以2.5 mod 2结果是0

精确度高,应该可以设置小数位数。

因为Single是一个浮点类型,它不能精确地表示一个数据。
类似的,Double也不能精确表示。
如果需要精确表达小数,用Currency类型。


用VB编程算1*2*3*...*n
Private Sub Command1_Click() Dim s As Double, n As Integer, i As Integer s = 1 n = InputBox("请输入数据") For i = 1 To n s = s * i Next i Print sEnd Sub

vb 关于时间延迟
我的意思是最后一个循环能够控制剩下的20分钟 Do While Timer < loopfinish '00:20 'out of loop at 00:20 Loop === 你的理解也对 , 虽然分钟和秒有些差别,不过理解上是一样的 这后面还有两句代码 , 可能在你的那种情况下就有用了 '假如delaytime = 30 * 60 = 30 分钟 * 60 秒 ...

用vb设计简单算术表达式计算器 速度 谢谢
Dim Memory As Double ‘用来记录你保存的数,这个我们用的科学计算器里也有 Dim Reg As Double ‘这个也是用来记录结果 Dim CalcNumber As Long ‘这个是判断:1当之前点过一次+或-时再点一次运算结果,2如果前面没点过+或-则不进行运算 Dim DisplayFromNew As Boolean ‘这个用来判断输入框状态:...

vb计时器
VB计时器其实就是在设定的时间间隔,每隔一段时间执行一次。如:Private Sub Form_Load()Timer1.Enabled = True ‘打开计时器 timer1.Interval=1000 ’设置计时器间隔为1秒 End Sub Private Sub Timer1_Timer()Static i% '定义 i 为 一个静态变量 i = i + 1 ‘每秒 i 累加 ...

VB 分别用3个InputBox函数输入小时、分钟、秒的值,化成共有多少秒,并...
Private Sub Form_Click()Dim a As Single, b As Single, c As Single, d As Singlea = Val(InputBox("输入小时的值", ""))b = Val(InputBox("输入分钟的值", ""))c = Val(InputBox("输入秒的值", ""))d = a * 3600 + b * 60 + cText1.Text = dEnd Sub 您的采纳就...

VB怎么输入表达式计算得到结果?
Function EvaluateB(ByRef Bdsz As String) As Double '思路:先计算括号内,再依次计算括号外。大多用拼音第一字母命名 Dim LenBdsz As Integer '计算表达式长度 Dim LskhStr(3) As String '临时括号值,即括号将原表达式分隔成三段 LskhStr(0)为总计算值 Dim i, j As Int...

vb现在时间加秒数计算下个时间
d = DateAdd("s", s, d) MsgBox Format(d, "h点n分s秒") '把日期格式化为 *点 *分 *秒End Sub DateAdd函数对日期变量进行加减。第一个参数是加减的单位,(s表示秒;h:时; n:分; y:年; m:月; d:日)第二个参数加上一个整形数,如是负值就是减。第三个日期参数 ...

VB中开始时间,结束时间和所用时间?
判断间隔时间是吧?代码如下,希望对你有所帮助 Dim start As Date,ending As Date Private Sub Form_Load()start = DateTime.Now End Sub Private Sub Command1_Click()ending = DateTime.Now Dim time As Integer time = DateDiff("s",start,ending)MsgBox ("开始时间为:"& start & ",结束...

怎么让vb程序显示计算后的数值
vb显示计算后的结果有两种方法 1、直接用输出控件 比如用text1输出。计算结果是s 你可以把s赋给text1.text 代码为 text1.text=s 这里的s可以字符型,也可以是数字型 他会自动转换成字符型,等效 text1.text=cstr(s)本例中 就用这种方法来显示,代码有错误 把(Text.1 text) = s 改成(...

在VB设计计算器时算出来的小数应该是0.5,结果是.5,怎么改啊
1)n1 = 2 \/ 10 If InStr(n1, ".") = 1 Then n1 = 0 & n1 MsgBox n1 2)format(-.5,"#0.0")

中牟县17837723539: 为什么用VB计算时结果会出现很长的小数 -
源祁羚翘: 因为Single是一个浮点类型,它不能精确地表示一个数据.类似的,Double也不能精确表示.如果需要精确表达小数,用Currency类型.

中牟县17837723539: VB语言关于long长整型溢出的问题 -
源祁羚翘: 第一种情况就不用说了把,第二种是因为190*190中的190是短整型,190*190却大于32767,只要这样就好了 Dim s As Long s = 190& * 190 Print s 这样就是把第一个190声明为长整型,这样就不会错了

中牟县17837723539: vb中findwindow函数返回值怎么是好长一串
源祁羚翘: '变量名不能用hwndDim myhwnd As Longmyhwnd = FindWindow(vbNullString, "计算器")MsgBox myhwnd

中牟县17837723539: 关于vb中数据的溢出问题 -
源祁羚翘: VB进行加减乘除四则运算时,会根据第一步运算时的位数来决定最终结果的存储位数.这个跟最终赋值的那个变量是什么类型是无关的,因为这是发生在运算过程中(也就是赋值之前)的. 所以 16384 * 4 * 0.5 由于16384是Integer,所以VB会...

中牟县17837723539: VB中计算时间太长,想通过新开一个进度条窗体显示进度,但是VB貌似不能做多线程并行运算吧.有啥办法? -
源祁羚翘: 在显示进度的语句后加DoEvents语句就可以了.如果是循环数比较多,因此不断调用显示进度会占用较多系统时间,可以加入条件判断,进度到一定程度才显示进度,同时注意在条件判断中尽量减少调用控件的属性,而用变量代替,如下: ...

中牟县17837723539: VB 计算结果有误差怎么解决!!! -
源祁羚翘: 1. 建议把excel中的计算过程和结果粘出来,供大家比较分析.2.把所有变量定义成double型试试.3.给PI赋一个精确值试试.

中牟县17837723539: 在用VB文本框显示大容量字符串的时候出现几个现象,求解释即可,不必贴算法(当然有了更好) -
源祁羚翘: 在VB中,字符串变量可以储存2G的数据.(我没有试过,不清楚是不是真的,但是超过30MB的倒是试过,可以的,运行超慢)Text...

中牟县17837723539: Vb6.0 刚开始学编程 这是一个计算器的代码 ,我点击计算时就出现这样的情况 谁知 -
源祁羚翘: 这个不难啊~双击“加数”按钮,打开代码窗口,输入以下代码: text3.text=val(text1.text)+val(text2.text) 提示:val是字符串转换成数值,如果你不加val的话,就会变成字符串连接.

中牟县17837723539: VB用同一个TEXT输入数字然后显示计算长度 -
源祁羚翘: Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then Text1.Text = Len(Text1.Text) End If End Sub

中牟县17837723539: VB的几个问题 -
源祁羚翘: 如何学好VB 序:不要老是想着谁“最有钱途”,这些都不是我们应当考虑的,我们要考虑的是怎样才能真正的精通VB.如果成为了VB的专家,应当很容易赚到钱的.VB程序员为什么工资低,不是VB不行,是因为大部份VB程序员不行,他们...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网