当 double 具有“精确”整数值时,如下所示:
double x = 1.0;
double y = 123123;
double z = -4.000000;
当通过 (int)x、(int)y、(int)z 转换为整数类型时,是否保证它会正确舍入到 1、123123 和 -4?(并且不截断为浮点怪异的 0、123122 或 -5 b/c)。我根据this page询问b / c (这是关于lua中的fp,一种默认情况下只有双精度数作为其数字类型的语言),讨论了根据IEEE 754如何使用双精度数进行整数运算,但我不是确定,当使用整数类型参数调用 C 函数时,我需要担心手动舍入双精度数,或者当双精度数具有精确的整数值时会处理它。