<script>
function xxx(b) {
alert(b);
if (b < 1) { b = b + 0.1; setTimeout(function() { xxx(b); }, 1000); }
}
</script>
<input type="button" value="Send" onclick="xxx(0.1)">
В алерте получаю -
0.1
0.2
0.3000...0004
0.4
0.5
0.6
0.7
0.7999...9999
0.8999...9999
0.9999...9999
1.0999...9999
Причём по всех браузерах одно и тоже.
Решил проблему так: b = (b*10 + 1)/10;
Но всё же интересно узнать, почему 0.2 + 0.1 != 0.3.