This is not a bug this is because of something known as floating point values these floating point values relate to something called IEEE-754 which is a standard for floating point values in the computer space. For example if you do 0.1 + 0.2 on a computer it will not give you 0.3 there will be tons of decimal places and an inaccurate number this is because computers don’t have amazing precision when it comes to floating point numbers. 64bit adds precision but it is not perfect I recommend watching a video on IEEE-754 to better understand floating point values.
No, this definitely should happen - it would be kind of strange if it did anything else!
A consequence of floating point is that not all numbers can be represented with perfect precision. You can see this for yourself by using this floating point visualizer. If you want more of an explanation, this page does a good job of it without getting mired in the details.