我在Excel中有这种长公式,需要将其转换为javscript才能在网页上使用。
公式如下:
= IF(B15 / Q2< 1; 0.4 *((B15 ^ 3)/(Q2 ^ 2)) - 0.09 *((B15 ^ 2)/ Q 2)+ 0.1 * B15; B15-(Q2 *( 0.79 * EXP(-0.27 *(Q2 / B15)))))
B15
和Q2
是整数> = 0
在excel时B15 = 292
和Q2 = 251
将135
放进去。
在我尝试将其转换为javascript时,它会输出417.甚至没有尽可能接近。
任何帮助将不胜感激。
编辑 -
该公式可以找到对玩家造成的伤害。因为B15是攻击等级而Q2是攻击必须经过的装甲。这些数字的预期损失为135
答案 0 :(得分: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);
答案 1 :(得分:0)
一个粗略的猜测,如果你用字面意思转换它,^
可能会导致问题,因为这些是Javascript中的按位XOR。您应该使用pow
方法。例如,对于公式中的第一个实例,将为pow(B15, 3)
。