Excel趋势线到c#代码错误?

时间:2013-01-13 20:46:36

标签: c# excel

我已经转换了以下表达式

enter image description here

到这个功能

private double getRisingTemp(double x/*time*/)
{
    double y;
    y = Math.Pow(3 * 10, -12) * Math.Pow(x, 5) - Math.Pow(4 * 10, -9) * Math.Pow(x, 4) + Math.Pow(10, -6) * Math.Pow(x, 3) + 0.0005 * Math.Pow(x, 2) - 0.0302 * x + 23.826;
        return y;
}

C#中的图表与我在Excel中看到的图表略有不同。只是想确保我的C#功能100%对应于等式。

enter image description here

enter image description here

如果功能正常,可能出现什么问题?

2 个答案:

答案 0 :(得分:2)

x ^ 4和x ^ 5系数的表达式不正确。只需使用带有科学记数法的内置double

y = 3e-12 * Math.Pow(x, 5) - 4e-9 * Math.Pow(x, 4) + 1e-6 * Math.Pow(x, 3) + 0.0005 * Math.Pow(x, 2) - 0.0302 * x + 23.826;

答案 1 :(得分:0)

您需要查看Math.Pow()上的文档,该文档可以找到here。例如,您的第一次转换错误:Math.Pow(3 * 10, -12)并且与您的:3E-12不对应。 3E-12的含义是10到12的3倍。您可以阅读有关此here的更多信息。

希望这能帮到你!