Bueno quiero saber si un numero es entero, para ello la variable que uso esta en un arreglo y pasa por varios métodos.
les pondré desde la inicialización hasta donde me retorna false.
//aqui la creo
var posPy = [550, 11];
//aqui esta en un metodo donde empiezo a crear valores de decimal
posPy = [posPy[0] - tplayer, posPy[1] - 0.2];
posPy[1] = posPy[1].toFixed(1); //solo quiero dejar un decimal por que me botana por ejemplo 10.8,10.700000000004,10.600000000002 y así iba por ello obte de que solo aceptara un decimal
//aqui el ultimo metodo donde la uso
var y = this.posPy[1];
console.log(y+", Estado="+Number.isInteger(this.posPy[1]));
if(Number.isInteger(this.posPx[1]) && Number.isInteger(this.posPy[1])){
//AQUI JAMAS ENTRA POR QUE SIEMPRE ME RETORNA FALSE
//inclusive llegue a pensar que no aceptaba numeros como 2.0, 9.0 pero hice un test manuel y si retorna true esos numeros
Number.prototype.toFixed siempre regresa un string. Lo más probable es que tengas un string "11.0" en lugar del número 11.
En tu ejemplo no tienes posPx definido en ningún sitio.
Haz un: alert(typeof(this.posPx[1])); justo antes del if, a ver si es un número o un objeto, o algo distinto.
Si usas por ejemplo new Number(10) estás creando un objeto, no un tipo number primitivo.
Ten cuidado con tu código y las conversiones implícitas. Estaría bien que pusieras todo el código si no es excesivamente grande para poder ver cual es el problema.
Probablemente si haces esto:
posPy[1] = +(posPy[1].toFixed(1));
se te solucione.
Gracias no tenia idea de que retornaba string, pero ya lo arregle como me menciono @XSStringManolo
el posPx no omiti por que hacía el mismo procedimiento que posPy