为什么在这个代码下,10/3的结果为3.00000,而10/3.0的结果为3.333333
#include <stdio.h>
int main()
{
float a;
a=10/3.0;
printf("jieguo=%f",a);
return 0;
}
解释:
整数与整数相除,结果只会显示整数部分,自动砍掉小数部分,即取整,即便小数部大于4也不会发生进位;
因为初始化的变量是a
,而不是算子10和3,这两个数的类型依旧是整数型,其结果依旧遵循整数型变量相除的结果,只是其结果1
被赋值给了一个浮点数变量a
整数与浮点数相除,整数会变为浮点数,a定义为浮点数则结果为3.333333,但当a的定义为int时则不会有结果,显示为0.000000;并且当结果无法完全显示时会进行四舍五入