Its not a bug.
Its a limitation of 32bit floating point numbers (IEEE-754) and occurs in all programming languages that use this type of variable. The number 123456789 cant actually be represented by a 32bit float number. Not completely accurately.
Floating point numbers do not have an infinite resolution. Even using double precision(64bit) there is a limit to the actual numbers that can be stored (not that we can use doubles in AGK...yet)
https://www.h-schmidt.net/FloatConverter/IEEE754.html
Try a few numbers in the website above and you will see that there are MANY numbers that you cant actually store in a float.