For this reason, I'm in favor of ABSOLUTELY NO AUTOCONVERSION. In my opinion, if someone says "int pi_rounded = 3.14159", that should give a compile error.
Use braced initialisation and the compiler will produce an error.
int pi_rounded{3.14159};
<source>:1:16: error: narrowing conversion of '3.1415899999999999e+0' from 'double' to 'int' [-Wnarrowing]
1 | int pi_rounded{3.14159};
| ^~~~~~~
Compiler returned: 1
Implicit type conversions was one of the stupidest things that C++ needed from C to remain highly compatible.