1163028233 发表于 2020-12-12 20:56:24

求问算术

#include<stdio.h>
void main()
{
        int a=4,b=5,c=6;
        float x=1.5,y=-1;
        printf("%f\n", b/a*(double)a/b);
}

这个式子里b/a*(double)a/b
double 是2的意思?

jackz007 发表于 2020-12-12 21:15:51

本帖最后由 jackz007 于 2020-12-12 21:24 编辑

(double)a/b
      double 是一种数据类型,叫双精度浮点数,a / b 的结果本来是整型数 0,但是,现在有了前面的这个 (double) 就会使这个结果变成双精度浮点数,其结果就不再是整型数 0,而是双精度浮点数 0.8。
      于是
      b / a = 5 / 4 = 1
      b / a * (double) a / b = 1 * 0.8 = 0.8
      

4goodworld 发表于 2020-12-12 21:22:14

(double)是强制转换类型,把int型改成 双精度浮点数
页: [1]
查看完整版本: 求问算术