Beware of int and double constraints.
int main(void)
{
double val1 = INT_MAX + 10.5;
int val2 = val1;
printf("val1 = %f\nval2 = %d\n", val1, val2);
return (0);
}
The following data is displayed here:
val1 = 2147483657.500000
val2 = -2147483648
(I don't know if INT_MAX is standard, sorry).
Tom's source
share