VB里,怎么把常数2定义成双精度?
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/06/11 06:17:28
VB里,怎么把常数2定义成双精度?
下面是我编的程序,运行了,只算n=50的时候,n=1000就不算了,究竟怎么把常数2定义成双精度呢?
Dim yuanzhoulv As Double, n As Double
Private Sub Command1_Click()
yuanzhoulv = 2
For n = 1 To 2000
yuanzhoulv = yuanzhoulv * ((2 * n) ^ 2) / ((2 * n - 1) * (2 * n + 1))
If n = 50 Then
Text1.Text = yuanzhoulv
Else
If n = 1000 Then
Text1.Text = Text1.Text & Chr(13) + Chr(10) & yuanzoulv
End If
End If
Next n
End Sub
你自己在VB的立即窗口测试一下:
Print 30000 * 2
这样是会提示“溢出”的,改成下面这样:
Print 30000 * 2# '或者Print 30000# * 2
就不会出错了.
原理是30000和2两个数都是整型数(Integer)范围,所以VB就按Integer来进行计算,但它们相乘的结果60000却超出了Integer的范围,所以就溢出了.只要把这两个数的任何一个设为双精度浮点数(也可以是长整型数或单精度数),VB就会按双精度数来计算结果,这样就不会溢出了.
所以题目中要你把2设为双精度型的意思,就是要你把2写成2#的形式,即:
yuanzhoulv = yuanzhoulv * ((2# * n) ^ 2) / ((2 * n - 1) * (2 * n + 1))
注意,只需要任何一个2写成2#即可,用不着四个2都写成2#
但是,具体到你这条题目,2是无须写成2#的,因为第一个乘数yuanzhoulv已经是双精度型变量了,所以VB肯定会按双精度型来计算的,所以你的这行代码是没错的.
纵观你的全部代码,问题有几个:
1、Text1的MulitLine属性一定要设为True,否则的话n=50和n=1000时的两次运算结果是会显示在同一行的,不会如你所愿分两行显示;
2、Text1.Text = Text1.Text & Chr(13) + Chr(10) & yuanzoulv 这行最后面的yuanzoulv应该是yuanzhoulv才对;
3、Chr(13) + Chr(10)可以用VB内部常数vbCrLf来代替.
其他就没什么问题了.
Print 30000 * 2
这样是会提示“溢出”的,改成下面这样:
Print 30000 * 2# '或者Print 30000# * 2
就不会出错了.
原理是30000和2两个数都是整型数(Integer)范围,所以VB就按Integer来进行计算,但它们相乘的结果60000却超出了Integer的范围,所以就溢出了.只要把这两个数的任何一个设为双精度浮点数(也可以是长整型数或单精度数),VB就会按双精度数来计算结果,这样就不会溢出了.
所以题目中要你把2设为双精度型的意思,就是要你把2写成2#的形式,即:
yuanzhoulv = yuanzhoulv * ((2# * n) ^ 2) / ((2 * n - 1) * (2 * n + 1))
注意,只需要任何一个2写成2#即可,用不着四个2都写成2#
但是,具体到你这条题目,2是无须写成2#的,因为第一个乘数yuanzhoulv已经是双精度型变量了,所以VB肯定会按双精度型来计算的,所以你的这行代码是没错的.
纵观你的全部代码,问题有几个:
1、Text1的MulitLine属性一定要设为True,否则的话n=50和n=1000时的两次运算结果是会显示在同一行的,不会如你所愿分两行显示;
2、Text1.Text = Text1.Text & Chr(13) + Chr(10) & yuanzoulv 这行最后面的yuanzoulv应该是yuanzhoulv才对;
3、Chr(13) + Chr(10)可以用VB内部常数vbCrLf来代替.
其他就没什么问题了.
VB里,怎么把常数2定义成双精度?
VB里变量怎么定义长整形或实数类型
vb中定义的d为双精度变量,设d=text1.text,text1.text里输入的是12.3625 为啥运行时d=36
VB程序题目定义下列变量(1)定义一整数型变量 (2)定义一由10个长整数型构成的一维数组变量(3)定义一单精度实数型变
ANSYS实常数怎么定义
VB中怎么定义实数型
VB定义函数问题我想把函数定义在一个程序里面的IF里面 .这个定义在该怎么写啊?
VB中单精度实数型的取值范围怎么算出来的呢?
vb里的 rem是定义的什么啊
mathcad中公式中的常数怎么定义.
VB里app.该怎么用呢?
VB里怎么异或运算VB6