That are nature of floating point, the way they are stored in memory (and you can’t have fraction of bytes) make there precision dependable to how big number is as it need to fit in specific number of bits, the bigger the number the less precise it becomes (part before “.”), so if oyu use float you need to be more error tolerant and put that in to account in your code. They way float fix precision depends on how your CPU computes them. Here you have wiki about it:
Note that BP exlusivly use single-precision floating points, in C++ you have also use double-precision floating point (“double” type) which are more precise, but UE4 code overall use single so you can’t really use double in practice in UE4.
Use of integer is you want absolute precision.