我有一个关于 C 语言中对数形式的问题。我已经定义了变量,如下所示,
double **rx, rr00, perranking;
rx0 = dmatrix(1, PN, 1, M);
perranking = 0;
rr0 = dmatrix(1, PN, 1, M);
for (period = 1; period <= hp; period++) {
if (rx0[i][j - period] != -99) {
rr00 += rx0[i][j - period];
perranking++;
period++;
}
rr0[i][j] = rr00 - double (log(perranking));
}
但是,日志表单始终显示"从'双精度'转换为'int',可能会丢失数据"。那么我该如何调整我的编码呢?谢谢
双精度值通常不适合整数类型。
double x = 10e54;
int y = x;
如果您确定它适合,只需添加显式强制转换以禁止显示警告
int y = (int)x;