Javascript 输入值是字符串而不是数字
当我向输入中添加一个数字时,它不会改变保持在5的值,当我进入控制台并键入uw.value时,我得到的是“6”,而不是我在web上输入的6。如何获得一个数字而不是字符串Javascript 输入值是字符串而不是数字,javascript,html,Javascript,Html,当我向输入中添加一个数字时,它不会改变保持在5的值,当我进入控制台并键入uw.value时,我得到的是“6”,而不是我在web上输入的6。如何获得一个数字而不是字符串 <form> <input type="number" id="wakken" type="number" value=5><br> <input max="30" min="0" name="ijsberen" placeholder="Ijsberen" id="ijs
<form>
<input type="number" id="wakken" type="number" value=5><br>
<input max="30" min="0" name="ijsberen" placeholder="Ijsberen" id="ijsberen" type="number" value= "5"><br>
<input max="30" min="0" name="wakken" placeholder="Penguins" id="penguins" type="number" value= 0><br>
<input type="button" value="submit" onclick="check()">
</form>
对于小数,可以使用
parseFloat(value)
将值从字符串转换为数字;对于整数,可以使用parseInt(value)
例如:
// uw will refer to the numerical value of the element with id = wakken
var uw = parseInt(document.getElementById("wakken").value);
(对于
元素)是一个字符串
使用以下方法之一将数字字符串转换为正确的数字:
parseInt(值,10);//从左到右将字符串解析为整数(整数)。
parseFloat(值);//从左到右将字符串解析为浮点数(十进制)。
数字(值);//将整个字符串转换为数字。
或者,在值之前添加一元+
:
+值;//相当于`数字(值)`。
要完全确保您的值是一个数字,您还可以执行以下操作:
if(!isNaN(parseFloat(el.value))和&isFinite(el.value)){
//如果元素的值是数字(或字符串中的数字),则为true
}
例如:
// uw will refer to the numerical value of the element with id = wakken
var uw = parseInt(document.getElementById("wakken").value);
var-uw=document.getElementById(“wakken”);
var ui=document.getElementById(“ijsberen”);
var up=document.getElementById(“企鹅”);
//日志字符串
console.log(uw.value);//"5"
console.log(ui.value);//"5"
console.log(up.value);//"0"
//日志编号
console.log(编号(uw.value));//5.
console.log(+uw.value);//5.
console.log(parseInt(ui.value,10));//5.
console.log(parseFloat(up.value));//0
不要忘记阅读文档:
签出HTMLInputElement.
:
元素的值,按顺序解释为以下值之一:
时间值
数
如果无法进行转换,则为null
var testInput=document.getElementById(“测试输入”);
函数handleInput(e){
var值=此.valueAsNumber;
日志(“类型:%s,值:%o”,类型值,值);
}
testInput.addEventListener(“输入”,handleInput);
handleInput.call(testInput)代码>
将记录“works!uw”是一个int”,因为我们收集了值并使用parseInt(\uuw:String)
将其转换为int。我需要在哪里添加parseFloat(值)在代码中的何处可以对我的代码进行编辑please@KnackKwenie我在我的答案中添加了一个示例。当我这样做时,我会得到意外的token var或意外的token;佳能你能改进我的答案吗?@佳能不要弄乱的类型
,使用!isNaN(parseFloat(value))&&isFinite(value)这听起来像是问“如何在JavaScript中将字符串转换为数字”的复杂方式。检查not isNaN时为什么需要parseFloat?对于这个答案,我的朋友,valueAsNumber对我来说是一个新的答案。我在寻找与已知解析不同的东西。什么是“时间值”?@nafg推测,输入类型date
和time
的“自1970年1月1日午夜起的毫秒数”。
var uw = parseInt(document.getElementById("wakken").value, 10); // (value, radix)
if (typeof uw === "number") console.log("works! 'uw' is an int");