求助各位大佬们
#include<stdio.h>int main()
{
float a,b,c,sum;
a=1;
b=0.5;
c=1/3;
sum=a+b+c;
printf("结果是:%.2f",sum);
}
为什么sum是1.50而不是1.83;怎么样求得到1/3的值? #include<stdio.h>
int main()
{
float a,b,c,sum;
a=1;
b=0.5;
c=1.0/3.0;
sum=a+b+c;
printf("结果是:%.2f",sum);
} 1.0 / 3
或者
1 / 3.0
或者
1.0 / 3.0
1/3 在编译器看来你是要将两个整型相除,结果小于一直接就向下取整成0了
所以结果是1 + 0.5 +0
其实只要 其中一方为浮点数就可以了,会隐式转换成两浮点数相除 大马强 发表于 2021-10-5 19:44
谢谢了(*^_^*)😘 人造人 发表于 2021-10-5 19:44
1.0 / 3
或者
1 / 3.0
谢谢了(*^_^*) 本帖最后由 傻眼貓咪 于 2021-10-5 20:07 编辑
整数/整数 = 整数
浮点数/整数 = 浮点数
浮点数/浮点数 = 浮点数
范例:#include <stdio.h>
int main(){
float num;
num = 1/3; // 这里整数/整数 = 整数,然后赋值于num变成浮点(1/3 = 0,num = 0.00)
printf("%.2f", num);
return 0;
}0.00
页:
[1]