简单的问题。在我的代码中,我将 double 设置为整数,如下所示:
int square_root = sqrt(sum);
我需要明确地转换它吗?
没有铸造,我似乎得到了我想要的结果,即floor(sqrt(x))
sqrt(4200) = 64
sqrt(42) = 6
简单的问题。在我的代码中,我将 double 设置为整数,如下所示:
int square_root = sqrt(sum);
我需要明确地转换它吗?
没有铸造,我似乎得到了我想要的结果,即floor(sqrt(x))
sqrt(4200) = 64
sqrt(42) = 6
int square_root = sqrt(sum);
在 C 中等价于:
int square_root = (int) sqrt(sum);
现在请注意,如果 a 的不可分割部分在 adouble
中不可表示,int
则行为是未定义的(在这两种情况下)。
在功能上没有区别,但是显式转换会引起读者的注意,即存在截断。
如果您的数字的平方根是整数,则不会影响。但如果它是一个实数(例如 10 的平方根),您将得到一个截断的整数,这可能对您的程序不方便。