vb-加法得数不对

来源:百度知道 编辑:UC知道 时间:2024/05/24 10:14:19
Private Sub Command1_Click()
Dim A, b, c, d, e As Double
A = Text1.Text
b = Text2.Text
c = Text3.Text
d = Text4.Text
e = Text5.Text

Text6.Text = Val(A) + Val(b) + Val(c) + Val(d) + Val(e)
End Sub
当a=0.8
b=0.8
c=-0.8
d=-0.7
e=-0.16时
计算Val(A) + Val(b) + Val(c) + Val(d) + Val(e)时为什么等于-5.99999999999999E-02而不等于-0.06呢?
望高手解答!!
谢谢你的精彩讲解 我又学到了不少东西

我要的是结果等于-0.06而不是-5.99999999999999E-02
还望高手解答!

Text6.Text = Val(A) + Val(b) + Val(c) + Val(d) + Val(e)

改为

Text6.Text = format(Val(A) + Val(b) + Val(c) + Val(d) + Val(e),"0.###########")

呵呵,不管结果对不对,你犯了多个错误
Private Sub Command1_Click()
'这样声明才是正确的!
Dim A As Double , b As Double , c As Double , d As Double , e As Double

A = val(Text1.Text )
b = val(Text2.Text )
c = val(Text3.Text )
d = val(Text4.Text )
e = val(Text5.Text )
'这样赋值才是正确的

Text6.Text = A+b+c+d+e
End Sub

然后,你的这些都是定义的为双精度型.加上进行加法的数值中位数不同,所以结果也是为双精度型..

-5.99999999999999E-02
中的E-02就是10的-2次方,所以值也就是-0.06的.

===========================================
然后给你转转MSDN中有关减法的定义:

– 运算符
用来求两数之差或表示数值表达式的负值。

语法 1
result = number1 - number2

语法 2
- number

– 运算符的语法具有以下几个部分:

部分 描述
result 必需的;任何数值变量。
number 必需的;任何数值表达式。
number1 必需的;任何数值表达式。
numbe