将excel函数转换为c#Math.pow不会产生相同的值

本文关键字:函数 excel 转换 pow c#Math | 更新日期: 2023-09-27 18:23:58

我正试图将此函数从excel转换为C#:

=10^(0.1*(-44.1224+3.32*(-9760520104064452*LOG(0.89*(200/160))))

excel给我的是:1.2467E-06

var value = Math.Pow(10, 0.1 * (-44.1224 + 3.32 * (-97.060520104064452 * Math.Log10(0.89 * (200 / 160)))));

C#给我的C#值=0.00165443260792358536

有人知道为什么我在excel和c#中没有得到相同的值吗?

将excel函数转换为c#Math.pow不会产生相同的值

因为C#为您取整。

更改此项:

200 / 160

200.0 / 160.0

本地输出:

1.24676291550131E-06

这是因为200/160被强制转换为整数,从而截断结果。为了解决这个问题,你可以按照Rob的建议,把分子或恶魔写为浮点数。请参阅/操作员参考。