Javascript 用对数log2计算商
我必须计算一个简单的商:Javascript 用对数log2计算商,javascript,Javascript,我必须计算一个简单的商: log2(val1) / log2(val2) 我试着用以下方法来解决这个问题: var valueOne = Math.log2(val1); var valueTwo = Math.log2(val2); var quotient = valueOne / valueTwo; 不幸的是,它不起作用。正如我发现的,显然Math.log2 在Chrome中,我得到了*'uncaughttypeerror:undefined不是函数'* 现在如何计算商 可以将M
log2(val1) / log2(val2)
我试着用以下方法来解决这个问题:
var valueOne = Math.log2(val1);
var valueTwo = Math.log2(val2);
var quotient = valueOne / valueTwo;
不幸的是,它不起作用。正如我发现的,显然Math.log2
在Chrome中,我得到了*'uncaughttypeerror:undefined不是函数'*
现在如何计算商 可以将Math.log(x)
函数计算为Math.log(x)/Math.LN2代码>。这可以从对数的性质得到
.log2()
函数是Math
构造函数的新手,并非所有浏览器都支持该函数。可以将Math.log2(x)
函数计算为Math.log(x)/Math.LN2代码>。这可以从对数的性质得到
.log2()
函数是Math
构造函数的新成员,并非所有浏览器都支持该函数。使用此自定义函数
function log2(val) {
return Math.log(val) / Math.LN2;
}
var valueOne = log2(val1);
使用此自定义功能
function log2(val) {
return Math.log(val) / Math.LN2;
}
var valueOne = log2(val1);
注意log2(Math.pow(2,29))!=29
@Afsa:当然,如果你不关心准确性,这是一个快速修复方法,但如果你需要从log2
得到精确的结果,或者你正在使用floor
/ceil
。@Qantas使用Math.log2
可以给你同样的答案。如果你需要更精确的数学运算,你需要使用更复杂的数学。@Qantas嗯,当你处理此类数学运算时,使用=
是不可靠的。也许我们正在使用不同的浏览器。您应该使用Math.abs(x-y)注意log2(Math.pow(2,29))!=29
@Afsa:当然,如果你不关心准确性,这是一个快速修复方法,但如果你需要从log2
得到精确的结果,或者你正在使用floor
/ceil
。@Qantas使用Math.log2
可以给你同样的答案。如果你需要更精确的数学运算,你需要使用更复杂的数学。@Qantas嗯,当你处理此类数学运算时,使用=
是不可靠的。也许我们正在使用不同的浏览器。如果代码中有错误,应该使用Math.abs(x-y)<代码>y=2^x=>x*ln(2)=ln(y)=>x=ln(y)/ln(2)!=项次(y)/项次(2))
@Afsa??呵呵?哦,等等,我明白你的意思了;杜尔。谢谢。你的代码有错误<代码>y=2^x=>x*ln(2)=ln(y)=>x=ln(y)/ln(2)!=项次(y)/项次(2))
@Afsa??呵呵?哦,等等,我明白你的意思了;杜尔。谢谢