JavaScriptとActionScript1.0/2.0/3.0の浮動小数点数の精度を比較してみました。
JavaScriptの結果は、IE7、Opera10(Win)、Safari4(Win)で実行したものです。
fpn.js
<script type="text/javascript">
<!--
var n = 0;
for(var i = 0; i < 10; i++){
n += 0.1;
document.write(n+"<br />");
}
// -->
</script>
0.1
0.2
0.30000000000000004
0.4
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
fpn4as3.as
// ActionScript3.0
var n:Number = 0;
for (var i:Number = 0; i < 10; i++) {
n += 0.1;
trace(n);
}
0.1
0.2
0.30000000000000004
0.4
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
fpn4as2.as
// ActionScript1.0/2.0
var n = 0;
for (var i = 0; i < 10; i++) {
n += 0.1;
trace(n);
}
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
この記事は、以前ブログで公開していた記事、内容を再編集したものです。
ActionScript 1.0/2.0/3.0とFlex 3の内容が中心です。