简体   繁体   中英

struggling with Number.isInteger()

I have an assignment to make a converter from decimal to binary numbers and vice versa. I have done everything I need, but I have no idea how to protect the site from the user entering a number with the part after the decimal point.

So I fooled around the internet and found Number.isInteger() , yet I have no idea how this works. Tried writing some test stuff (as you can observe beneath this wall of text) but nothing seemed to work. Can anyone offer any help as to how exactly Number.isInteger() works?

 pepege() { var a = +document.getElementById("x").value; var b = Number.isInteger(a); document.getElementById("out").innerHTML = b; }
 <input type="text" id="x"> <br> <input type="button" value="xddddd" onclick="pepege();"> <br> <a id="out"></a>

Thanks for any and all advice on how to move forward with this.

You can add event listener and force user to enter just number. As i understand you are having problem with user inputs

 const pepege = () => { var a = +document.getElementById("x").value; var b = Number.isInteger(a); document.getElementById("out").innerHTML = b; } document.getElementById("x").addEventListener("input", event => { document.getElementById("x").value = document.getElementById("x").value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1') });
 <input type="text" id="x"> <br> <input type="button" value="xddddd" onclick="pepege();"> <br> <a id="out"></a>

Wrap your var a in parseFloat() . Input type text always returns a string. With parseFloat() , you'll get NaN for non-numeric characters, a float for a float, and an integer for an integer.

 function pepege() { var a = parseFloat(document.getElementById("x").value); var b = Number.isInteger(a); document.getElementById("out").innerHTML = b; }
 <input type="text" id="x"> <br> <input type="button" value="xddddd" onclick="pepege();"> <br> <a id="out"></a>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM