因此,对于小数点后输入字段中输入的每个字符,以下代码段应该为设置字符串“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
}
}
答案 0 :(得分:2)
你不需要用字符串来做这件事。带有1后跟N个零的数字就是10 N 。您可以使用Math.pow()
执行取幂。
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;
答案 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)
}