I know this is stupid but I’m a quiet a noob in a programming world here is my code.
This one works perfectly:
#include <stdio.h>
int main() {
float x = 3153600000 ;
printf("%f", x);
return 0;
}
But this one has a problem:
#include <stdio.h>
int main() {
float x = 60 * 60 * 24 * 365 * 100 ;
printf("%f", x);
return 0;
}
So 60 * 60 * 24 * 365 * 100 is 3153600000 right ??? if yes then why does it produced different results ??? I got the overflow in the second one it printed “-1141367296.000000” as a result. Could anyone tell me why ?
You’re multiplying integers, then putting the result in a float. By that time, it has already overflowed.
Try
float x = 60.0f * 60.0f * 24.0f * 365.0f * 100.0f;. You should get the result you want.