我有一个当前存在于电子表格中的等式,我希望将其包含在我正在编写的程序中。在使用与excel版本相同的值评估vb.net中的等式时,我会得到不同的答案,但不会有很大的余量。
Excel等式:
=((3*H14)/(4*H13^2))*(((H11^2)-(2*(H12^2)))+((H12^4)-8*(H12^4)*LN(H11/H12)+(2*H11^2*H12^2))/(H11^2+(2*(H12^2))))
H11=a; H12=b; H13=t; H14=P
vb.net等式:
Stress = ((3 * P) / (4 * thk ^ 2)) * ((a ^ 2 - 2 * b ^ 2) + (b ^ 4 - 8 * b ^ 4 * Log(a / b) + (2 * a ^ 2 * b ^ 2)) / (a ^ 2 + 2 ^ b ^ 2))
a = 7.125; B = 1.5; T = 1.25; P = 595
Excel值= 14094.066
vb.net值= 14041.618
有人能指出为什么答案会有所不同吗?
答案 0 :(得分:2)
您的公式在上一个词中有所不同
比较
(H11^2+(2*(H12^2))))
^
到
(a ^ 2 + 2 ^ b ^ 2))
^
答案 1 :(得分:0)
这可能是由于舍入错误,因为这是一个很长的表达。 Excel的精度略低于.net
中数学的精度结帐
VS