我有以下Visual Basic代码:
Dim L16, L23, L45, t As Double
Dim LBase, LAdjacent, LOpposite As Double
L16 = 20
L23 = 10
L45 = 30
t = 1
LBase = L16
LAdjacent = L23
LOpposite = L45
Dim Sum As Double
Sum = t ^ 2 * L16 + 6 * t ^ 3 + 2 * L16 ^ 3 + 3 * L16 ^ 2 * t + 2 * L23 ^ 2 * L16 + L23 ^ 2 * t + 8 * L23 * t * L16 + 4 * L23 * t ^ 2 - L45 ^ 2 * L16 + L45 ^ 2 * t - 4 * L45 * t * L16 + 4 * L45 * t ^ 2
Console.WriteLine("1st Sum: " & Sum)
Sum = t ^ 2 + LBase + 6 * t ^ 3 + 2 * LBase ^ 3 + 3 * LBase ^ 2 * t + 2 * LAdjacent ^ 2 * LBase + LAdjacent ^ 2 * t + 8 * LAdjacent * t * LBase + 4 * LAdjacent * t ^ 2 - LOpposite ^ 2 * LBase + LOpposite ^ 2 * t - 4 * LOpposite * t * LBase + 4 * LOpposite * t ^ 2
Console.WriteLine("2nd Sum: " & Sum)
两个方程都应该是等价的:我只是简单地用Lase替换L16,用LAdjacent替换L23,用LOpposite替换L45。然而第一个等式输出3586而第二个输出3587.为什么?
我正在使用VS2010
阿姆鲁
答案 0 :(得分:5)
第一次总和计算:
Sum = t ^ 2 * L16 + ...
第二次总和计算:
Sum = t ^ 2 + LBase + ...
其中一个有*
,另一个有+
。