Type conversion
Turning a value of one data type into another — either because the programmer asked for it, or because the language did it behind their back.
The interesting distinction is explicit versus implicit. An explicit conversion is a cast: int(3.7), (double)x, Integer.parseInt(s) — the programmer takes responsibility for any information lost. An implicit conversion, usually called coercion, happens automatically when the language meets mismatched types and guesses what was intended.
Those guesses are a classic source of bugs. JavaScript's "5" + 3 yields "53" while "5" - 3 yields 2, because + prefers strings and - cannot. Converting between integers of different widths silently drops the high bits, float-to-integer truncates rather than rounds, and large integers lose precision in a double. Strictly typed languages prefer to refuse to compile.