Следующий скрипт содержит очень странную ошибку. Я хочу проверить, является ли значение положительным целым числом. Для этого я умножаю на 100, чтобы заключить значение в десятичное число. Если я проверяю 0.07, сценарий вычисляет не значение 7, а значение 7.00000001. Я мог бы округлить значение, но я хотел бы знать, почему значение рассчитывается таким образом.
<script type="text/javascript">
var isPositiveInt = function(i) {
i = i*100;
return ((i % 1) == 0 && i >= 0);
};
</script>
<a href="#" onclick="alert(isPositiveInt('0.07')); return false;">Try it out!</a>
0,05, 0,06 и 0,08 отлично работает. Но что происходит с 0,07? Я был бы счастлив, если бы кто-то мог мне это объяснить.