-2

重複の可能性:
JavaScript parseInt 8 進数バグの回避策

まあ私はこれを持っています http://jsfiddle.net/gMDfk/1/ アラートは0を返します 値が8または9に等しい場合、jsfiddleのコードは完璧に機能します.. Wtfはここで起こっていますか?

4

4 に答える 4

7

, 10aを parseIntに追加します。

parseInt( val, 10 );

これは JS に 10 進数として扱うように指示します。デフォルトでは、 で始まるもの0はすべて、8 進数の基数 8 として扱われます。は有効な 8 進数ではないため09、次のようになります。0

于 2011-12-27T20:39:46.773 に答える
2

数値の前に 0 を付けると、javascript によって 8 進数として解釈されることを意味します。これを試して:

alert(parseInt("010")); //shows "8"

10に 2 番目のパラメーターとして渡すことで修正parseIntできます。これにより、10 進数で解析する必要があることがわかります。

alert(parseInt("010", 10)); //shows "10"
于 2011-12-27T20:40:51.503 に答える
1

parseint は基数パラメーターを使用する必要があります: parseint (value, radix)。あなたの場合、基数は 10 です。それ以外の場合は、8 進数として扱われます。

于 2011-12-27T20:40:17.057 に答える
0

ベースを指定する

parseInt(some_id_value,10);
于 2011-12-27T20:43:07.643 に答える