고려 :자바 스크립트에서는 parseInt 잘못된 변환
<html>
<body>
<input Id="1"></input>
<input Id="2"></input>
<button Id="3"onclick="add()">Add</button>
<script>
function add()
{
var num1 = document.getElementById("1").value;
var val1 = parseInt(num1);
var num2 = document.getElementById("2").value
var val2 = parseInt(num2);
var val3 = val1 + val2;
var x = +num1 + +num2;
alert(val3);
</script>
</body>
</html>
내가 자바 스크립트에서 두 개의 번호를 추가하고 싶습니다. 하지만 '11111111111111111'을 텍스트 상자에 제공하면 parseInt가 11111111111111111 대신 11111111111111112로 변환됩니다. 왜 이렇게할까요?
나는 모든 기술을 시도했다. 먼저 var를 문자열로 변환하고 int로 파싱 한 다음 parseInt와 함께 다른 기수를 사용했지만 여전히 아무것도 얻지 못했습니다.
나는 또한 16 1을 제공 할 때 문제가 없지만 17 1은이를 수행함을 알 수있다.
parseInt 올바른 형식은 기수입니다. 즉'parseInt (value, 10)'입니다. 여기서 기수는 10 진수의 경우 '10'입니다. 기본적으로 일부 브라우저는 기수를 8 진수, 즉 '8'로 가정합니다. 자세한 내용은 [** 여기 **] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt#Description)를 참조하십시오. –
시도해 보았지만 여전히 동일한 결과를 제공합니다. 11111111111111112 – rao
@Mr_Green 일부 브라우저는 문자열이 0으로 시작하지 않는 한 기수를 8 진수로 가정하지 않습니다. * 여기에는 해당하지 않습니다. 그리고 옥타브 11111111111111111은 확실히 11111111111111112가 아닙니다. – JJJ