From the comments of FPlatformTime::Seconds()
// add big number to make bugs apparent where return value is being passed to float
Why does this expose bugs?
Starting from 0.0, the minimal increment of a float (32 bit floating point) is 3*10^-6 seconds (3 micro seconds).
However, the farther away from 0.0 you get the more this decays. After a week of continuous play the counter would only be able to increment by 7/1000ths of a second! Races can be lost by less than that!
At the arbitrary point Epic chose to add to Seconds(), the minimal increment is two whole seconds.
What’s the impact in your code? If your game (or multiplayer server, for a more realistic case) ran for 6 months straight and you had stored LastFiredTime as a float, then you would possibly have two whole seconds of slop before your Fire routine had realized any time at all had passed. That would look very sloppy to the player, who is seeing that they’re unable to fire up to two seconds after they should have already reloaded!
It’s a bit of tough love that will expose bugs that you shouldn’t have in the first place. You can pre-emptively thank them for saving you from tearing your hair out 6 months post-launch of your amazing multiplayer game.
See a more thorough explanation at this site: