如何将string.length“转换”为一组“0”?

时间:2018-05-20 06:13:18

标签: javascript for-loop concatenation

因此,对于小数点后输入字段中输入的每个字符,以下代码段应该为设置字符串“1”添加“0”(字符串!)。

因此对于“23.45”(之前从输入字段中取出),我的var因子应为“100”。

(4.40032 - > var因子应为10000,3.4 - > var因子应为10,依此类推)

但事实并非如此。我几乎100%确定for循环是错误的。我只是无法将我的想法转化为计算机可读的东西。

感谢您的帮助!

function calculate() {
    var userInput = document.getElementById("userNumber").value;
    var posPoint = userInput.indexOf(".")
    var relevantInputLength = userInput.slice(posPoint).length;

    for (var i = 0; i < relevantInputLength; i++) {

        //no idea what to do or if a for-loop would even make sense

    }
}

2 个答案:

答案 0 :(得分:2)

你不需要用字符串来做这件事。带有1后跟N个零的数字就是10 N 。您可以使用Math.pow()执行取幂。

&#13;
&#13;
function calculate(userInput) {
        var posPoint = userInput.indexOf(".");
        var relevantInputLength = userInput.length - posPoint - 1;
        return Math.pow(10, relevantInputLength);
    }

console.log(calculate("23.45"));
console.log(calculate("4.40032"));
console.log(calculate("3.4"));
&#13;
&#13;
&#13;

答案 1 :(得分:1)

你必须声明stringChain外部循环并在循环中追加0,然后在循环完成后转换

function calculate() {
    var userInput = document.getElementById("userNumber").value;
    var posPoint = userInput.indexOf(".")
    var relevantInputLength = userInput.slice(posPoint+1).length;
    var stringChain = "1";
    for (var i = 0; i < relevantInputLength; i++) {
         stringChain += "0";
    }
            var factor = parseInt(stringChain);
            console.log(factor)
}