人気ブログランキング | 話題のタグを見る
(1000000000000000128).toString() //=> "1000000000000000100" ?
 JavaScriptのテクニック集のサイトを見ながら色々試していたら、以下のような謎の挙動に出会った。

(1000000000000000128).toString() 
//=> "1000000000000000100"


 うーん、これってどういう事何だろ?最後の二桁が落ちちゃってる。精度の関係?

 MDC の Numberオブジェクトの項を確認してみたり、ググってみたりしたけど、よく分からんかった。

 色々試してみると、IEとFireFoxでも、挙動が異なる。

 試したコード

var print = (function (){
if("console" in window){
return function(str){console.log(str)};
}
else if ("jash" in window){
return function(str){jash.print(str)};
}
else{
return function(str){a lert(str)};
}
})();

var a = "100000000000000019";
for (var i = 0; i < 5; i++){
var str = a + i;
print(str + " => " + parseInt(str));
}


結果
IE (with jash)

1000000000000000190 => 1000000000000000100
1000000000000000191 => 1000000000000000100
1000000000000000192 => 1000000000000000200
1000000000000000193 => 1000000000000000200
1000000000000000194 => 1000000000000000200

FireFox (with FireBug)

1000000000000000190 => 1000000000000000100
1000000000000000191 => 1000000000000000100
1000000000000000192 => 1000000000000000300
1000000000000000193 => 1000000000000000300
1000000000000000194 => 1000000000000000300


うーーん、謎。
何か知っている人がいたら、教えて下さい。
by fkmn | 2007-06-25 23:37 | IT
<< 【感想】ファイナルファンタジー... もやしもん5巻発売 >>


とあるWebアプリケーションエンジニアの日記

by fkmn
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
カテゴリ
以前の記事
ブログパーツ
リンク
検索
タグ
最新のトラックバック
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧

fkmnの最近読んだ本 フィードメーター - フッ君の日常 あわせて読みたい AX