分部不返双

ozg*_*gun 1 c# double rounding

以下值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);
Run Code Online (Sandbox Code Playgroud)

Ser*_*kiy 7

您至少需要一个double类型的操作数.否则你将获得整数结果(整数除法将发生)

fhr_1 = (double)n_fhr_1/(n_fhr_1 + n_fhr_0 + n_fhr_2);
Run Code Online (Sandbox Code Playgroud)

要么

fhr_1 = n_fhr_1/(double)(n_fhr_1 + n_fhr_0 + n_fhr_2);
Run Code Online (Sandbox Code Playgroud)

要么

fhr_1 = n_fhr_1 / ((double)n_fhr_1 + n_fhr_0 + n_fhr_2);
Run Code Online (Sandbox Code Playgroud)

您可以在msdn上阅读有关除法规则的更多信息.

  • 我喜欢你是第一个发帖的人,还有3个答案基本上都是同样的. (2认同)

Lio*_*ior 5

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);
Run Code Online (Sandbox Code Playgroud)

你必须将其中一个操作数转换为double,这样它将把它计算为double.