If statements not working right

I’m using a if statement to set a string, but when I hit the if statement it always evaluates to false. Unless i hard code the values in. Here’s my code

string sideString = "";
float test = transform.position.x;
bool testBool = side;
Debug.Log(side); //comes back as false
Debug.Log(testBool);//cames back as False
        		
Debug.Log(transform.position.x); //comes Back as -1495.584
Debug.Log(test);//comes back as -1495.584
//string test = " ";
      
if (!testBool && (test == (-1495.584f))) {
        			
       Debug.Log (sideString);
       sideString = "rightBottom" + roundNum.ToString ();
       Debug.Log (sideString); 
}

then sideString will always evaluate to “”.

Edit: After further testing I found its a problem with the float test, and I have also tried transform.position.x in the if statement and that didn’t work.

You are trying to directly compare two floating point numbers. Given unseen digits and round-off in calculations, comparisons that seem like they should work, often fail. Use Mathf.Approximately() instead.