这个Bin到Dec脚本有什么问题?

时间:2014-03-25 15:29:49

标签: javascript

我在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);

1 个答案:

答案 0 :(得分:1)

问题在于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(我还没有完全阅读你的逻辑,知道确切的原因,我只知道你需要考虑它)