Когда double имеет "точное" целочисленное значение, например:
double x = 1.0;
double y = 123123;
double z = -4.000000;
Гарантируется ли это правильное округление до 1, 123123 и -4 при приведении к целочисленному типу через (int) x, (int) y, (int) z? (И не усекать до 0, 123122 или -5 b/c от странности с плавающей запятой). Я прошу b/c в соответствии с этой страницей (что касается fp в lua, язык, который по умолчанию имеет удвоение в качестве его числового типа), рассказывает о том, как целые операции с двойными точками в соответствии с IEEE 754, но я не уверен, что, при вызове C-функций с параметрами целочисленного типа, мне нужно беспокоиться об удвоении удвоения вручную или об этом заботятся, когда удваиваются точные целочисленные значения.