Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用对数log2计算商_Javascript - Fatal编程技术网

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??呵呵?哦,等等,我明白你的意思了;杜尔。谢谢