我对编码很新,所以我的问题可能看起来很乏味。我正在解决一个问题,在建议的解决方案中有一条线:
return 4 * (double)nrC / n;
其中" nrC"和" n"是整数。
这里(双)的功能是什么?它转向" nrC"和" n"变成双重?
答案 0 :(得分:2)
它将nrC
的值(名称)转换为double值。变量本身没有变化。
答案 1 :(得分:1)
正如其他人所说,这是 cast ,即转换值的类型。
这里使用它的原因是,当只用整数(例如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 !!! */