有些时候,使用C语言的相除运算符计算两个变量相除运算结果,可是却无法保留小数,比如3/2,打印输出是1,而不是1.5之类有小数的值。这是为什么呢?可能有两种原因,如下:
如上实例中的3/2,两个变量均为int或其它整型,相除得到的运算结果也为整型,要得到浮点数,可以将其中一个变量转换为浮点型;
C语言中pirntf()函数打印输出浮点数使用的是%f占位符,而不是 %d;
下面将通过几个实例来验证这两种原因。
实例代码中,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语言 相除怎么得小数,两种可能原因
免责声明:内容仅供参考,不保证正确性。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。