An incomprehensible moment arose in the output of variables of type float.
#include <stdio.h> int main(void) { float a = 123456789; printf("%f",a); return 0; } The following code, as I thought, should output 123456789 , however, in a real situation, it outputs 123456792.000000 . If you try to enter something simpler, for example, 900000008, then the last digit disappears. If you make the same thing with the int type, everything is fine. Tell me please, what's the problem?