我正在 JS 中制作一个 bin-to-dec 脚本(我知道 js 有它自己的函数来完成它)作为我的作业,但它不起作用 - 它返回 NaN 值。有人可以解释一下我在这里做错了什么吗?
function binToDec(bin){
var x=bin.length;
for (i=0; i<bin.length ; i++){
var r=Math.pow(parseInt(bin.charAt(i),10)*2, x-1);
x-=1;
y+=r;
}
return y;
}
var bin=prompt('input a bin number');
var y=binToDec(bin);
alert('this number in dec is: '+y);
最佳答案
问题是 y
未在您的函数中声明,因此您实际上正在尝试将 r
添加到 undefined
,结果是 NaN
。
这似乎有效:
function binToDec(bin){
var x=bin.length;
var y = -1;//Define y here
for (i=0; i<bin.length ; i++){
var r=Math.pow(parseInt(bin.charAt(i),10)*2, x-1);
x-=1;
y+=r;
}
return y;
}
var bin=prompt('input a bin number');
var y=binToDec(bin);
alert('this number in dec is: '+y);
请注意,y
默认设置为 -1
,因为当我尝试 0
时,您的结果似乎总是比应有的结果多 1 code> (我还没有完全理解你的逻辑来了解确切的原因,我只知道你需要解释它)
关于javascript - 这个 Bin 到 Dec 脚本有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22639165/