-2

我在 excel 中有这种长公式,需要将其转换为 javscript 以在网页上使用。

公式如下:

=IF(B15/Q2<1;0.4*((B15^3)/(Q2^2))-0.09*((B15^2)/Q2)+0.1*B15;B15-(Q2*(0.79*EXP (-0.27*(Q2/B15)))))

B15并且Q2是整数 >= 0

在 excelB15 = 292中何时Q2 = 251输出135

在我尝试将其转换为 javascript 时,它会输出 417。甚至不像您所看到的那样接近。

任何帮助将不胜感激。

编辑-

该公式计算对玩家造成的伤害。因为B15是攻击等级,Q2是攻击必须经过的护甲。这些数字的预期损失为 135

4

2 回答 2

1

试试这个:

var a = 292,
    b = 251,
    c = null;

if(a/b<1)
    c = 0.4*(Math.pow(a,3)/Math.pow(b,2))-0.09*(Math.pow(a,2)/b)+0.1*a
else
    c = a-(b*(0.79 * Math.exp(-0.27*(b/a))))

console.log(c);​

演示:http: //jsfiddle.net/g3ZJH/

于 2012-06-10T17:20:46.313 回答
0

粗略的猜测,如果您按字面意思进行转换,则^s 可能会导致问题,因为这些是 Javascript 中的按位 XOR。您应该改用该pow方法。例如,公式中的第一个实例是pow(B15, 3).

于 2012-06-10T17:12:20.087 回答