Python-Arduino USB communication floats problem

After some tests i find out that 8-bit arduino and Python can send floats with maximum 3 decimal places with accuracy!!!

I also wrote a non struct code, here are the results:

NON_STRUCT

Arduino side: https://drive.google.com/file/d/1lvgT-LqQa7DxDorFF0MTe7UMpBfHn6LA/view?usp=sharing

Python side: https://drive.google.com/file/d/1gPKfhTvbd4vp4L4VrZuns95yQoekg-vn/view?usp=sharing

WITH_STRUCT better performance

Arduino side: https://drive.google.com/file/d/153fuSVeMz2apI-JbDNjdkw9PQKHfGDGI/view?usp=sharing

Python side: https://drive.google.com/file/d/1M6iWnluXdNzTKO1hfcsk3qi9omzMiYeh/view?usp=sharing

Youtube video: - YouTube