实型变量 1.0/3*3为什么编译后还等于1
#include<stdio.h>void main()
{
printf("%f\n",1.0/3*3);
}
结果显示:1.000000
1除以3再乘3就是等于1呀
%f保留小数点后6位
所以显示1.000000
欢迎追问 你想让它等于几,请问? 你想等于0.999999吗
1.0/3*3是实型运算,与你学过的数学运算是一致的,输出结果是1.000000 是这样的,C语言的计算整数型和浮点型是不一样的。
#include <stdio.h>
int main()
{
printf("%d\n",1/3*3);
printf("%d\n",1*3/3);
printf("%f\n",1*3/3);
printf("%f\n",1.0*3/3);
}
你先除以3在乘以3,整形会吧1/3小数位丢弃成为0,0*3=0.
浮点型会保留小数位的。
你那个是浮点型
《C程序设计语言》里有 哪一页忘了
输出如下
PS D:\xht\Desktop> ./1
0
1
0.000000
1.000000
PS D:\xht\Desktop>
页:
[1]