Time.deltaTime not working?

Straight forwardly, I have a runner whose speed ought to be constant… I use

transform.position = new Vector2 (transform.position.x + (Speed * Time.deltaTime), transform.position.y);

Time.timeScale is all left untouched… but when I run the game sometimes the position isn’t the same at X number of seconds than it was before. I do notice that sometimes the game lags up, but shouldn’t the use of multiplying by Time.deltaTime take lag out of the equation?

Floating point precision errors. Google it. Add together a lot of small numbers and the rounding errors mount up fast.

If you want deterministic movement you should rely on Time.time or Time.timeSinceLevelLoaded to set the player position.

transform.position = new Vector2 (speed * Time.time, transform.position.y);