If, during the conversion of:

the source value is outside the range of values that can be represented in the destination type, the result is undefined behavior. Example:

double x = 1e100;
int y = x; // int probably cannot hold numbers that large, so this is UB