c语言相除怎么得小数,两种可能原因

c语言相除为什么没有小数

有时候,使用C语言的相除运算符计算两个变量相除的运算结果,可是却无法保留小数,比如3/2,打印输出是1,而不是1.5之类有小数的值。这是为什么呢?可能有两种原因,如下:

  • 如上实例中的3/2,两个变量均为int或其它整型,相除得到的运算结果也为整型,要得到浮点数,可以将其中一个变量转换为浮点型;
  • C语言中pirntf()函数打印输出浮点数使用的是%f占位符,而不是 %d;

下面将通过几个实例来验证这两种原因。

c语言相除得到小数实例代码

实例代码中,int除以int,即x除以y,并使用%f,得到的却是0.000000;int除以float,即x除以z,却使用%d,得到的却是0;int除以float,即x除以z,且使用%f,得到1.500000:

#include <stdio.h>
int main() {

    int x = 3;
    int y = 2;
    float z = 2.0;

    printf("x / y= %f \n", x/y);
    printf("x / z= %d \n", x/z);
    printf("x / z= %f \n", x/z);
    return 0;

}

免责声明:内容仅供参考,不保证正确性。


全栈后端 / C语言教程 :


















Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.