So following:

```
double t = 244.233;
int a = (int) t;
```

is not undefined behaviour since 244 can fit inside `int`

did I get it right? Otherwise if it was larger value instead of 244 which didn't fit inside int this would be undefined, did I get it right?

I am more interested in how C does this. But is there difference in this case w.r.t to C++?

# Best How To :

From [conv.fpint]:

A prvalue of a floating point type can be converted to a prvalue of an integer type. The conversion truncates; that is, the fractional part is discarded. The behavior is undefined if the truncated value cannot be represented in the destination type.

So, for example, converting 66666.66 to an `int16_t`

would be undefined behavior, but converting `66.66`

is just fine.