Javascript Returns Nan
I have a function which does some maths on two numbers but i seem to get NaN as a return for it.... I don't know why though..... this is my function: function mouseConvert(mousex,
Solution 1:
Well if the mouse positions are strings like "0", consider:
(mousex + Data.offset_x)
Becomes
"0" + -32 //"0-32"The string "0-32" will then attempted to be converted to a number when you do subtraction with - (settings.width/2). And Number("0-32") is NaN, after which everything becomes NaN.
You should convert them to a number right at the beginning. Or rather, never convert them to strings in the first place, since the event object has them as numbers already...
Solution 2:
U have to convert mouseX and mouseY to int or float parseInt or parseFloat
<html><head></head><body><script>varData = { ipos: NaN, jpos: NaN, level: "1", money: "1000", offset_x: -32, offset_y: -250};
var settings = { grid: 64, height: 500, offset_left: 258, offset_top: 85, width: 1165};
functionmouseConvert(mousex,mousey){
mousex = parseInt(mousex);
mousey = parseInt(mousey);
console.log(mousex+ ' '+ mousey);
var x = (mousex + Data.offset_x) - (settings.width/2) - settings.offset_left;
var y = (mousey + Data.offset_y) - settings.offset_top;
var tx = Math.round((x + y * 2) / settings.grid) - 1;
var ty = Math.round((y * 2 - x) / settings.grid) - 1;
console.log(tx+ ' '+ ty);
return [tx,ty];
}
mouseConvert('0', 1);
</script></body></html>return
0 1
-25 2 without parseInt it will return Nan
Post a Comment for "Javascript Returns Nan"