(double) C++的功能是什么

What is the function of (double) C++

我是编码方面的新手,所以我的问题可能看起来很无聊。我正在解决一个问题,在建议的解决方案中有一行:

return 4 * (double)nrC / n;

其中 "nrC" 和 "n" 是整数。

这里(double)的作用是什么。它会把 "nrC" 和 "n" 变成双倍吗?

它将 nrC 的值(这就是名称)转换为双精度值。变量本身没有变化。

正如其他人提到的,这是casting,即转换值的类型。

这里使用它的原因是,当只用整数进行除法时(例如4/3),你会得到整数运算:你输了余数(即 4/3 = 1(余数 1 丢失))。

这有时是不受欢迎的。因为结果可能会有很大差异,具体取决于您使用的是整数除法还是小数除法:

 int nrC = 3;
 int n = 2;
 int result_i = 4 * (nrC / n); /* 4*(3/2) = 4*1 = 4 !!! */
 int result_d = 4 * ((double)nrC/n); /* 4*(3.0/2) = 4*1.5 = 6 !!! */