VB中exp的返回值为0
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/20 00:01:04
VB中exp的返回值为0
我想做这样一个表达式:
b=exp(a*10)
结果b=0,a定义为double.
请问如何修改?
Private Sub cmdOk_Click()
Dim uc As Double
r = Text1.Text
c = Text2.Text
l = Text3.Text
us = Text4.Text
delta = r * r * c * c - 4 * l * c
If delta > 0 Then
r1 = (-r * c + Sqr(delta)) / 2 / l / c
r2 = (-r * c - Sqr(delta)) / 2 / l / c
a1 = r2 * us / (r2 - r1)
a2 = -r1 * us / (r2 - r1)
uc = a1 * Exp(r1 * 10)
Label3.Caption = uc
输出uc为0
我想做这样一个表达式:
b=exp(a*10)
结果b=0,a定义为double.
请问如何修改?
Private Sub cmdOk_Click()
Dim uc As Double
r = Text1.Text
c = Text2.Text
l = Text3.Text
us = Text4.Text
delta = r * r * c * c - 4 * l * c
If delta > 0 Then
r1 = (-r * c + Sqr(delta)) / 2 / l / c
r2 = (-r * c - Sqr(delta)) / 2 / l / c
a1 = r2 * us / (r2 - r1)
a2 = -r1 * us / (r2 - r1)
uc = a1 * Exp(r1 * 10)
Label3.Caption = uc
输出uc为0
要有完整代码(至少也要有前后10多行代码)才能分析原因.否则就像“管中窥豹”,神仙也帮不了你.
再问: 详见问题补充
再答: 由于双精度浮点数(Double)的精度问题,当Exp()中的参数小于-744时,计算结果已经超出双精度浮点数所能表示的最小数值范围了,结果就会为0
因此,uc = a1 * Exp(r1 * 10) 如果r1的值小于-74.4,那么uc就会为0
再问: e的高次幂有更好的计算方法呢,不行的话只能用泰勒公式展开?
再答: 不管怎么计算,结果都要受电脑的限制的,当一个正数小于4.94065645841247E-324(这个数相当于小数点后面有323个0,然后是494....)时,电脑就只能用0来表示了。
再问: 详见问题补充
再答: 由于双精度浮点数(Double)的精度问题,当Exp()中的参数小于-744时,计算结果已经超出双精度浮点数所能表示的最小数值范围了,结果就会为0
因此,uc = a1 * Exp(r1 * 10) 如果r1的值小于-74.4,那么uc就会为0
再问: e的高次幂有更好的计算方法呢,不行的话只能用泰勒公式展开?
再答: 不管怎么计算,结果都要受电脑的限制的,当一个正数小于4.94065645841247E-324(这个数相当于小数点后面有323个0,然后是494....)时,电脑就只能用0来表示了。
VB中exp的返回值为0
在VB中“条件表达式的值为0”是什么意思
用VB:设计一个函数,用来判断一个整数是否为素数.给定的整数若是素数,则返回逻辑值True,否则返回False
急用!编一个判断某数是否为素数的vb函数程序,返回值是逻辑型
为什么在vb中e的平方用exp(2)表示 而ln2用log(2)表示
在VB中,Int(555.55*10)/10的值为?
请问,我在VB里自己定义了一个函数,函数的输入变量为一个,函数计算结果为三个输出变量,请问怎么返回函数值
vfp中函数len(dtoc(date()))的返回值为?
若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是( ).A.(exp==0)
sumproduct 返回值为0
vb中数据类型 两个double类型的数据相除返回结果如果是很大的小数总是溢出怎么办?
(exp!=0)与(exp==1)与(exp=1)的区别