一、问题描述
4.5四舍五入应该是5,8.5四舍五入应该是9
但是printf()函数以".f"和''.lf''打印,得到的却是4和8
二、问题演示
1、代码
#include<stdio.h>
int main()
{
float f=4.5;
double d=8.5;
printf("%.f\n",f);
printf("%.lf\n",d);
return 0;
}
2、演示
三、自己写的正确的代码
1、代码
#include<stdio.h>
int main() {
double d;
int i = 0;
scanf("%lf", &d);
while (i < 2147483647) {
if (d - i < 1) {
if (d + 0.5 < i + 1) {
printf("%d\n", i);
} else {
printf("%d\n", i + 1);
}
break;
}
i++;
}
return 0;
}