Private Sub Command1_Click() Dim a As Single Dim b As Single Dim c As Single a = 1.375: b = 0.1: c = 1.4 Print a + b - c Text1.Text = a + b - c '7.500003E-02 End Sub
to :xxlroad兄: 我也单独写过一段代码,跟你上边的结果一样。但是我的我说的(A+B-C)仅仅是我的插值表达式里边的一部分,表达式中+,-,*,/都有,总体的运算结果跟手算的结果就是有莫名其妙的差别!而我的处理的数据本身是一些浮点数据,不允许四舍五入。我 开始怀疑参与运算的某些数据类型有问题,我把所有参与运算的数据都用!符号标记,结果跟预期的还是不相符,不知究竟是什么原因?
Private Sub Command1_Click() Dim a As Currency Dim b As Currency Dim c As Currency a = 1.375: b = 0.1: c = 1.4 Print a + b - c Text1.Text = a + b - c '.075 End Sub
Dim a As Single
Dim b As Single
Dim c As Single
a = 1.375: b = 0.1: c = 1.4
Print a + b - c
Text1.Text = a + b - c '7.500003E-02
End Sub
我也单独写过一段代码,跟你上边的结果一样。但是我的我说的(A+B-C)仅仅是我的插值表达式里边的一部分,表达式中+,-,*,/都有,总体的运算结果跟手算的结果就是有莫名其妙的差别!而我的处理的数据本身是一些浮点数据,不允许四舍五入。我 开始怀疑参与运算的某些数据类型有问题,我把所有参与运算的数据都用!符号标记,结果跟预期的还是不相符,不知究竟是什么原因?
Dim a As Currency
Dim b As Currency
Dim c As Currency
a = 1.375: b = 0.1: c = 1.4
Print a + b - c
Text1.Text = a + b - c '.075
End Sub
用currency插值后:0 1 2 3.0001 4.0001 5.0001 6.0001 7.0001
用single插值后: 0 1 2 3 3.9999 4.9999 5.9999 6.9999
好象都有0.0001的误差