下面的值fhr_1
计算为 0.0 为什么fhr_1
不是 0.3?
double fhr_1;
int n_fhr_1 = 9;
int n_fhr_0 = 15;
int n_fhr_2 = 6;
fhr_1 = n_fhr_1/(n_fhr_1 + n_fhr_0 + n_fhr_2);
您至少需要一个double
类型的操作数。否则你会得到整数结果(会发生整数除法)
fhr_1 = (double)n_fhr_1/(n_fhr_1 + n_fhr_0 + n_fhr_2);
或者
fhr_1 = n_fhr_1/(double)(n_fhr_1 + n_fhr_0 + n_fhr_2);
或者
fhr_1 = n_fhr_1 / ((double)n_fhr_1 + n_fhr_0 + n_fhr_2);
您可以在msdn上阅读有关除法规则的更多信息。
double fhr_1;
int n_fhr_1 = 9;
int n_fhr_0 = 15;
int n_fhr_2 = 6;
fhr_1 = (double)n_fhr_1/(n_fhr_1 + n_fhr_0 + n_fhr_2);
您必须将其中一个操作数转换为加倍,这样它将计算为加倍。
你不能简单地除整数,因为四舍五入你会得到 0。请尝试:
fhr_1 = ((double)(n_fhr_1))/(n_fhr_1 + n_fhr_0 + n_fhr_2);