ホームページ >ウェブフロントエンド >jsチュートリアル >parseInt parseFloat js文字列変換数値_javascriptスキル

parseInt parseFloat js文字列変換数値_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 18:22:041253ブラウズ

主な方法としては、

変換関数、強制型変換、js変数を利用した弱い型変換の3つがあります。

1. 変換関数:

js は、parseInt() と parseFloat() の 2 つの変換関数を提供します。前者は値を整数に変換し、後者は値を浮動小数点数に変換します。 String 型でこれらのメソッドを呼び出すことによってのみ、これら 2 つの関数が正しく実行されます。他の型では NaN (Not a Number) が返されます。

parseInt() と parseFloat() は両方とも、文字列が数値であるかどうかを判断する前に、文字列を注意深く分析します。 parseInt() メソッドは、まず位置 0 の文字を調べて、それが有効な数値であるかどうかを判断します。そうでない場合、メソッドは NaN を返し、他の操作は実行しません。ただし、文字が有効な数値の場合、メソッドは位置 1 の文字を調べて同じテストを実行します。このプロセスは、有効な数値ではない文字が見つかるまで継続され、検出された時点で、parseInt() がその文字の前の文字列を数値に変換します。

たとえば、文字列「1234blue」を整数に変換する場合、parseInt() は文字 b を検出すると検出プロセスを停止するため、1234 を返します。文字列に含まれる数値リテラルは数値に正しく変換されるため、文字列「0xA」は数値の 10 に正しく変換されます。ただし、小数点は整数では無効な文字であるため、文字列「22.5」は 22 に変換されます。いくつかの例を次に示します。

コードをコピー コードは次のとおりです。

parseInt(" 1234blue"); / / 1234 を返します
parseInt("0xA"); // 10 を返します
parseInt("22.5"); // 22 を返します
parseInt("blue"); // NaN を返します

parseInt() メソッドには、2 進数、8 進数、16 進数、またはその他の基本文字列を整数に変換できる基本モードもあります。基数は parseInt() メソッドの 2 番目のパラメータで指定されるため、16 進値を解析するには、次のように parseInt() メソッドを呼び出す必要があります。
もちろん、2 進数、8 進数、または 10 進数 (デフォルト モード) の場合は、次のように parseInt() メソッドを呼び出すことができます:

コードをコピー コードは次のとおりです。
parseInt("10", 2) // 2 を返します
parseInt("10", 8);
parseInt("10" , 10); //10 を返します

10 進数の先頭に 0 が含まれる場合は、誤って 8 進数値を取得しないように、基数 10 を使用することをお勧めします。例:

コードをコピー コードは次のとおりです:
parseInt("010") ; // 8 を返します
parseInt("010", 8); // 8 を返します
parseInt("010", 10) // 10 を返します

2 行 このコードは文字列「010」を数値に解析します。コードの最初の行は、この文字列を 8 進数値として扱い、コードの 2 行目 (基数 8 を宣言) と同じ方法で解析します。コードの最後の行では基数 10 を宣言しているため、iNum3 は最終的に 10 になります。

parseFloat() メソッドは parseInt() メソッドに似ています。このメソッドは、位置 0 から最初の無効な文字が見つかるまで各文字を調べ、その文字の前の文字列を数値に変換します。ただし、このメソッドの場合、最初の小数点は有効な文字です。小数点が 2 つある場合、2 番目の小数点は無効とみなされ、parseFloat() メソッドはこの小数点より前の文字列を数値に変換します。これは、文字列「22.34.5」が 22.34 として解析されることを意味します。
parseFloat() メソッドを使用する場合のもう 1 つの違いは、文字列が浮動小数点数を 8 進数または 16 進数形式ではなく 10 進数形式で表す必要があることです。
メソッドは先頭の 0 を無視するため、8 進数 0908 は 908 として解析されます。 16 進数 0xA の場合、x は浮動小数点数では有効な文字ではないため、メソッドは NaN を返します。さらに、parseFloat() には基本モードがありません。

次に、parseFloat() メソッドの使用例を示します。

コードをコピーします コードは次のとおりです。
parseFloat("1234blue"); //1234.0 を返す
parseFloat("0xA") //NaN を返す
parseFloat("22.5");
parseFloat("22.34 .5"); // 22.34 を返します
parseFloat("0908"); // 908 を返します
parseFloat("blue") // NaN を返します


2. Forced type conversion

You can also use type casting to process the type of the converted value. Use a cast to access a specific value, even if it is of another type.
The three types of casts available in ECMAScript are as follows:
Boolean(value) - Convert the given value into Boolean type;
Number(value) - Convert the given value into a number (Can be an integer or floating point number);
String(value) - Convert the given value into a string.
Converting a value using one of these three functions will create a new value that stores the value directly converted from the original value. This can have unintended consequences.
The Boolean() function returns true when the value to be converted is a string, non-zero number, or object with at least one character (this will be discussed in the next section). If the value is an empty string, the number 0, undefined, or null, it returns false.

You can use the following code snippet to test Boolean type conversion.
Copy code The code is as follows:

Boolean(""); //false – empty string
Boolean("hi"); //true – non-empty string
Boolean(100); //true – non-zero number
Boolean(null); //false - null
Boolean(0); //false - zero
Boolean(new Object()); //true – object

Number()’s forced type conversion and parseInt() and parseFloat() method works similarly, except that it converts the entire value rather than a partial value. Remember, the parseInt() and parseFloat() methods only convert the string up to the first invalid character, so "4.5.6" will be converted to "4.5". Casting with Number(), "4.5.6" will return NaN because the entire string value cannot be converted to a number. If the string value can be completely converted, Number() will determine whether to call the parseInt() method or the parseFloat() method. The following table illustrates what happens when the Number() method is called on different values:

Usage results
Copy code The code is as follows:

Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number( "5.5 ") 5.5
Number( "56 ") 56
Number( "5.6.7 ") NaN
Number(new Object()) NaN
Number(100) 100

The last cast method, String(), is the simplest because it can convert any value into a string. To perform this cast, just call the toString() method on the value passed in as a parameter, which converts 1 to "1", true to "true", false to "false", and so on. analogy. The only difference between casting to a string and calling the toString() method is that casting a null or undefined value produces a string without raising an error:
Copy the code The code is as follows:

var s1 = String(null); //"null"
var oNull = null;
var s2 = oNull.toString(); //won't work, causes an error

3. Use weak type conversion of js variables

Give a small example, you will understand at a glance .
Copy code The code is as follows:

<script> <br>var str= '012.345 '; <br>var x = str-0; <br>x = x*1; <br></script>

The above example takes advantage of the weak type characteristics of js, only Arithmetic operations are performed and type conversion from string to number is implemented, but this method is still not recommended.
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。