I know that floating point variables require work arounds when dealing with 0.1, 0.2, 0.3 etc.. but this seems unusual?
for(var i=0;i<10;i=i+1){
console.log("before timeout" + i/10); //returns 0.1 0.2 0.3 etc
setTimeout(function(){
console.log("after timeout" + i/10); //returns 1 1 1 etc
},1000);
}