JavaScript에서 정수를 변환하는 방법: 1. "parseInt("변환할 값")" 구문인 parseInt() 함수를 사용합니다. 2. "~~123.45"와 같은 비트 연산자를 사용합니다. 3. "Math.floor(value)" 및 "Math.ceil(value)" 구문을 사용합니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.
메서드 1:parseInt() 함수
parseInt()는 값을 정수로 변환할 수 있는 전역 메서드입니다. 변환 과정은 다음과 같습니다.
먼저 0 위치의 문자를 구문 분석합니다. 유효한 숫자가 아닌 경우 NaN이 직접 반환됩니다.
0번 위치의 문자가 숫자이거나 유효한 숫자로 변환될 수 있는 경우 위치 1의 문자를 계속 구문 분석합니다. 유효한 숫자가 아닌 경우 0번 위치의 유효한 숫자를 직접 반환합니다.
등 숫자가 아닌 문자를 찾을 때까지 왼쪽에서 오른쪽으로 각 문자를 하나씩 분석합니다.
parseInt()는 이전에 분석된 모든 합법적 숫자를 숫자 값으로 변환하여 반환합니다.
console.log(parseInt("123abc")); //返回数字123 console.log(parseInt("1.73")); //返回数字1 console.log(parseInt(".123")); //返回值NaN
부동 소수점 숫자의 점은parseInt()에 잘못된 문자이므로 값의 소수 부분은 변환되지 않습니다.
0으로 시작하는 숫자 문자열인 경우,parseInt()는 이를 8진수로 처리합니다. 먼저 이를 8진수로 변환한 다음 10진수로 변환하여 반환합니다.
0x로 시작하는 숫자 문자열인 경우,parseInt()는 이를 16진수로 처리합니다. 먼저 16진수 값으로 변환한 다음 10진수로 변환하여 반환합니다.
var d = 010; //八进制数字字符串 var e = 0x10; //十六进制数字字符串 console.log(parseInt(d)); //返回十进制数字8 console.log(parseInt(e)); //返回十进制数字16
parseInt()는 또한 2진수, 8진수, 16진수 등 다양한 진수의 디지털 문자열을 정수로 변환할 수 있는 기본 모드를 지원합니다. 기본 모드는 parsInt() 함수의 두 번째 매개변수로 지정됩니다.
예제 1
다음 코드는 16진수 문자열 "123abc"를 10진수 정수로 변환합니다.
var a = "123abc"; console.log(parseInt(a,16)); //返回十进制整数1194684
예제 2
다음 코드는 2진수, 8진수, 10진수 문자열을 10진수 정수로 변환합니다.
console.log(parseInt("10",2)); //把二进制数字 10 转换为十进制整数,为 2 console.log(parseInt("10",8)); //把八进制数字 10 转换为十进制整数,为 8 console.log(parseInt("10",10)); //把十进制数字 10 转换为十进制整数,为 10
예제 3
첫 번째 매개변수가 10진수 값이고 접두사가 0인 경우 8진수로 오해되지 않도록 두 번째 매개변수 값은 10, 즉 기본 모드로 지정해야 합니다. 명시적으로 정의되어 있으며 기본 기본 모드를 사용하는 대신입니다.
console.log(parseInt("010")); //把默认基模式数字 010 转换为十进制整数为 10 console.log(parseInt("010",8)); //把八进制数字 010 转换为十进制整数为 8 console.log(parseInt("010",10)); //把十进制数字 010 转换为十进制整数为 10
방법 2: 비트 연산자
console.log(0 | "123.45")//123 console.log(0 | 123.45)//123 console.log(0 ^ 123.45)//123 console.log(~~123.45)//123
원리: JavaScript에는 정수 개념이 없으며 모든 숫자 유형은 배정밀도 부동 소수점 숫자입니다. 비트 연산자를 사용할 때 먼저 피연산자를 정수로 변환하여 연산을 용이하게 합니다. 그러나 0을 다른 값과 XOR 또는 비트 OR하면 연산 값이 변경되지 않습니다.
방법 3: Math.floor 및 Math.ceil
Example
console.log(Math.floor(2.3))//2 console.log(Math.floor(-2.3))//-3 console.log(Math.ceil(2.3))//3 console.log(Math.ceil(-2.3))//-2
둘로는 부족합니다:
Math.floor는 숫자의 가장 작은 정수를 가져오고 Math.ceil은 가장 큰 정수를 가져옵니다. 따라서 -2.3을 반올림하면 -2가 되지만 Math.floor를 사용하면 -3이 됩니다. 그리고 2.3은 Math.ceil을 사용하여 3을 얻지만 우리가 원하는 것은 2입니다.
해결책:
//自行定义一个函数 function getInt(val){ return val>0 ? Math.floor(val):Math.ceil(val); }
[관련 권장 사항: javascript 학습 튜토리얼]
위 내용은 자바스크립트에서 데이터를 정수로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!