JavaScriptで数値を変換するにはどうすればいいですか? JavaScriptの数値変換方法まとめ

不言
リリース: 2018-09-13 16:02:40
オリジナル
1364 人が閲覧しました

この記事の内容はJavaScriptで数値を変換する方法についてです。 JavaScript の数値変換方法をまとめたので、困っている方は参考にしていただければ幸いです。

次の 3 つの関数は、数値以外の値を数値に変換します: Number()、parseInt()、parseFloat()

Number() の変換ルール

ブール値 true は 1 に変換されます false は変換されますto 0

var correct = true
Number(correct)
1
var error = false
Number(error)
0
ログイン後にコピー

数値が渡されたときに返されるもの

var sales = 10
Number(sales)
10
ログイン後にコピー

null値、0を返す

var arg = null
Number(arg)
0
ログイン後にコピー

未定義、NaN

var vara = undefined
Number(vara)
NaN
ログイン後にコピー

文字列を返す、次の規則に従います:

文字列に数字のみが含まれる場合(を含む)先頭に正符号または負符号を付けます)、それを 10 進数値に変換します。つまり、「1」
は 1、「123」は 123、「011」は 11 になります (注: 先頭のゼロは無視されます)。

var str = '1'
Number(str)
1
var str1 = '011'
Number(str1)
11
var str2 = '+1'
Number(str2)
1
var str3 = '-001'
Number(str3)
-1
var str4 = '-121'
Number(str4)
-121
ログイン後にコピー

文字列に「1.1」などの有効な浮動小数点形式が含まれている場合は、対応する浮動小数点値に変換します (同様に、先頭のゼロも無視されます)

var str = '1.1'
Number(str)
1.1
var str1 = '+1.1'
Number(str1)
1.1
var str2 = '-01.1'
Number(str2)
-1.1
ログイン後にコピー

文字列に有効な浮動小数点形式が含まれている場合 16 進数"0xf" などの形式で、同じサイズの 10 進整数

数値に変換します

文字列が空 (文字が含まれていない) 場合は、文字列に文字が含まれている場合は 0

var str = ''
Number(str)
0
ログイン後にコピー

に変換します上記形式以外の場合は、NaN

var str = 'adfsfdsa'
Number(str)
NaN
ログイン後にコピー

  1. に変換します。オブジェクトの場合は、オブジェクトのvalueOf()メソッドを呼び出し、戻り値を前述の規則に従って変換します。変換の結果が NaN の場合は、オブジェクトの toString() メソッドを呼び出し、返された文字列値を前の規則に従って再度変換します

parseInt() の変換ルール

Number() 関数は比較するため、文字列を変換する場合、それは複雑で不合理であるため、整数を扱う場合は

parseInt() 関数がよく使用されます。 parseInt() 関数が文字列を変換する場合、文字列が数値パターンに準拠しているかどうかに大きく依存します。最初の非スペース文字が見つかるまで、
文字列の前にあるスペースは無視されます。最初の文字が数値でない場合、parseInt()
は NaN を返します。つまり、parseInt() を使用して空の文字列を変換すると NaN が返されます (Number() は null 文字の場合 0 を返します)。
最初の文字が数字の場合、parseInt() は後続のすべての文字が解析されるか、
非数字文字が検出されるまで 2 番目の文字の解析を続けます。たとえば、「blue」は完全に無視されるため、「1234blue」は 1234 に変換されます。同様に、「22.5」
は、小数点が有効な数字ではないため、22 に変換されます。

指定基数会影响到转换的输出结果。例如:
var num1 = parseInt("10", 2); //2 (按二进制解析)
var num2 = parseInt("10", 8); //8 (按八进制解析)
var num3 = parseInt("10", 10); //10 (按十进制解析)
var num4 = parseInt("10", 16); //16 (按十六进制解析)
ログイン後にコピー
**多数情况下,我们要解析的都是十进制数值,因此始终将 10 作为第二个参数是
非常必要的。**
ログイン後にコピー

parseFloat() 変換ルール

parseInt() 関数と同様に、parseFloat() も最初の文字 (位置 0) から始めて各文字を解析します。さらに、

は文字列の終わりまで、または無効な浮動小数点数値文字が検出されるまで解析されます。つまり、文字列内の
番目の小数点は有効ですが、2 番目の小数点は無効であるため、それ以降の文字列は無視されます。たとえば、
「22.34.5」は 22.34 に変換されます。
有効な最初の小数点に加えて、parseFloat() と parseInt() の 2 番目の違いは、先頭の
ゼロを常に無視することです。 parseFloat() は、10 進整数形式を含む、前述したすべての浮動小数点数値形式を認識します。ただし、16 進形式の文字列は常に 0 に変換されます。 parseFloat() は 10 進数値のみを解析するため、2 番目のパラメーターで基数を指定する必要はありません。最後に注意すべき点: 文字列に整数 (小数点がない、または小数点以下がすべてゼロ) として解析できる数値が含まれている場合、parseFloat() は整数を返します。

var num1 = parseFloat("1234blue"); //1234 (整数)
var num2 = parseFloat("0xA"); //0 
var num3 = parseFloat("22.5"); //22.5 
var num4 = parseFloat("22.34.5"); //22.34 
var num5 = parseFloat("0908.5"); //908.5 
var num6 = parseFloat("3.125e7"); //31250000
ログイン後にコピー

関連する推奨事項:

JavaScript の探索: 数値変換に parseInt() を使用する

JavaScript 数値型と文字列型の間の変換_JavaScript スキル

以上がJavaScriptで数値を変換するにはどうすればいいですか? JavaScriptの数値変換方法まとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート