整数を変換する Javascript メソッド: 1. parseInt() 関数を使用します。構文は「parseInt("変換される値")」です。 2. 「~~123.45」などのビット演算子を使用します。 3. 「Math.floor(value)」および「Math.ceil(value)」構文を使用します。
このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
メソッド 1: parseInt() 関数
parseInt() は、値を整数に変換するグローバル メソッドです。変換プロセスは次のとおりです。
最初に位置 0 の文字を解析します。有効な数値でない場合は、NaN が直接返されます。
位置 0 の文字が数値であるか、有効な数値に変換できる場合は、位置 1 の文字の解析を続行します。それが有効な数値でない場合は、有効な数値を返します。位置 0 の文字を直接指定します。
以下同様に、数値以外の文字が見つかるまで、各文字を左から右に 1 つずつ分析します。
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 進数などのさまざまな基数のデジタル文字列を整数に変換できます。基本モードは、parseInt() 関数の 2 番目のパラメータで指定されます。
例 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 進数と誤解されるのを避けるために、2 番目のパラメータは次のようにする必要があります。パラメータ値は 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
この 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 学習チュートリアル]
以上がJavaScriptでデータを整数に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。