Javascript Math.pow()浮点数作为指数
我想将浮点数作为第二个参数(指数)传递给Javascript Math.pow()浮点数作为指数,javascript,floating-point,pow,Javascript,Floating Point,Pow,我想将浮点数作为第二个参数(指数)传递给Math.pow()。当传递的数字不是一个整数时,我总是得到NaN,比如0,2,7,你可以说。javascript中是否有一种可行的方法来实现这一点 (function () { var notice = document.getElementById('notice'); var value = 0.0; var interval = 0.02; var timeInterval = 10; function in
Math.pow()
。当传递的数字不是一个整数时,我总是得到NaN
,比如0,2,7,你可以说。javascript中是否有一种可行的方法来实现这一点
(function () {
var notice = document.getElementById('notice');
var value = 0.0;
var interval = 0.02;
var timeInterval = 10;
function interpolation(x) {
var y = Math.pow(Math.e, x); // <<< HERE >>>
console.log(x, y);
return y;
}
function animation() {
var callAgain = true;
if (value >= 1) {
value = 1.0;
callAgain = false;
}
notice.style['opacity'] = interpolation(value);
notice.style['marginTop'] = (value * 20 + 20) + 'px';
value += interval;
if (callAgain) {
setTimeout(animation, timeInterval);
}
}
animation();
})();
(函数(){
var notice=document.getElementById('notice');
var值=0.0;
var区间=0.02;
var时间间隔=10;
函数插值(x){
变量y=数学功率(数学e,x);/>
控制台日志(x,y);
返回y;
}
函数动画(){
var=true;
如果(值>=1){
数值=1.0;
callreach=false;
}
注意.style['opacity']=插值(值);
注意.style['marginTop']=(值*20+20)+'px';
值+=间隔;
如果(再次呼叫){
设置超时(动画、时间间隔);
}
}
动画();
})();
PS:请不要评论,透明度大于1没有任何意义。我知道,
e^x;x>0
将产生大于1
的值。当我开始工作时,我将插入一个适当的函数。常数是Math.E
,而不是Math.E常数是Math.E
,而不是Math.EMath.pow(2,4.5)代码>(例如)在chrome中对我有效。Math.pow(2,4.5)
(例如)在chrome中对我有效。Math.exp(x)
将是更好的计算方法。Math.exp(x)
将是更好的计算方法。