29

parseInt "09" を 9 にするにはどうすればよいですか?

4

6 に答える 6

55

基数を含めます:

parseInt("09", 10);
于 2009-10-09T17:49:19.567 に答える
11

これは私を狂わせてきました-parseInt("02")動作しますが、動作しませんparseInt("09")

他の人が言っているように、解決策は10進数を指定することです。

parseInt("09", 10);

ここにこの振る舞いの良い説明があります

... Javascriptでは、ゼロで始まる数値は8進数と見なされ、8進数に08または09がないため、問題が発生します。

于 2011-06-08T15:50:30.587 に答える
5

次のこともできます。

Number('09') => 9

これは、IE7、IE8、FF3、FF4、および Chrome 10 では整数 9 を返します。

于 2011-01-17T22:24:27.050 に答える
5

既存の parseInt を再実装して、1 つの引数で呼び出された場合に "10" が 2 番目の引数として自動的に含まれるようにします。

(function(){
  var oldParseInt = parseInt;
  parseInt = function(){
    if(arguments.length == 1)
    {
      return oldParseInt(arguments[0], 10);    
    }
    else
    {
      return oldParseInt.apply(this, arguments);
    }
  }
})();
于 2012-10-23T19:34:20.380 に答える
2
parseInt("09", 10);

また

parseInt(parseFloat("09"));
于 2009-10-09T17:50:29.717 に答える
2
parseInt("09",10);

ここでは 9 を返します。

奇妙です。

alert(parseInt("09")); // shows 9. (tested with Opera 10)
于 2009-10-09T17:54:49.807 に答える