简单的问题。在我的代码中,我将double设置为整数,如下所示:
int square_root = sqrt(sum);
我是否需要明确投射?
没有施法,我似乎得到了我想要的结果,即floor(sqrt(x))
sqrt(4200) = 64
sqrt(42) = 6
答案 0 :(得分:6)
int square_root = sqrt(sum);
在C中等效于:
int square_root = (int) sqrt(sum);
现在请注意,如果double
中的int
的整数部分无法在{{1}}中表示,则行为未定义(在这两种情况下)。
答案 1 :(得分:5)
在功能上没有区别,但是明确的演员会引起读者注意截断的事实。
答案 2 :(得分:2)
如果您的数字的平方根是整数,则不会影响。但如果它是一个实数(例如10的平方根),你将得到一个截断的整数,这可能对你的程序不方便。