- берите текущее значение, умножайте на 10
- инкрементируйте/декрементируйте (прибавляйте/удаляйте единцу)
- делите на 10
- округляйте до 1 знака после точки, а то js знаменит своей погрешностью при операциях с float =)
upd: вот примерно так подправить ваш скрипт, но с округлениями не заморачивался, если где-то увидите цифры в форме 86.500000003213..., то вам домашние задание для самообразования - сделать округление перед выводом =)
<script type="text/javascript">
var number = document.querySelector('.number'),
numberTop = number.getBoundingClientRect().top,
start = +number.innerHTML*10, end = +number.dataset.max*10; //правка раз
window.addEventListener('scroll', function onScroll() {
if(window.pageYOffset > numberTop - window.innerHeight / 2) {
this.removeEventListener('scroll', onScroll);
var interval = setInterval(function() {
number.innerHTML = ++start/10; //правка два
if(start == end) {
clearInterval(interval);
}
}, 5);
}
});
</script>