2012-03-16 71 views
1

我正在为需要用C#编写的excel计算而苦苦挣扎。C#中的Excel计算#

Excel中的计算是这样的:

=(-0,7333 * (1)^2 + 3,3167 * 1 + 1,625) * 1.821 * 16/1000 * 1,125 

在C#中我有这样的:

Math.Pow(-0.7333 * (1.0), 2) + 3.3167 * 1.0 + 1.625) * 1821.3125 * 16.0/1000 * 1.125 

对Excel计算给我的138

结果C#的计算给我179.63554194392623

当然,C#计算应该与Excel计算的结果相匹配,虽然在数学方面我当然不是很好,但是我没有发现这个计算的差异: -/

任何人都可以指出这一点数学 - 盲目地朝正确的方向发展? :-)

任何帮助/输入非常感谢!

在此先感谢。

一切顺利,

编辑: 感谢您的答案! :-)我刚刚在那里学到了一些新东西。

回答

6

更改EXcel中单元格的格式,它会显示exact结果。

另外-0,7333 * (1)^2在Excel中是-0.7333 * Math.Pow((1.0), 2)而不是你写的。

1

你的错误是,Excel将做电源muliplication前:

double q = (-0.7333 * Math.Pow((1.0), 2) + 3.3167 * 1.0 + 1.625) * 1821.3125 * 16.0/1000 * 1.125; 
0

有一个在Excel中表达缺少括号:

=((-0,7333 * 1)^2 + 3,3167 * 1 + 1,625) * 1.821 * 16/1000 * 1,125 

返回:

179.60472015642 

否则,电源将仅适用于“1”。 此外,在excel公式中,术语1821缺少十进制数字。所以:

=((-0,7333 * (1))^ 2 + 3,3167 * 1 + 1,625) * 1821,3125 * 16/1000 * 1,125 

返回:

179,635541943926 

好多了!