今天在做牛客网C语言入门题时,遇见这么一道题。
将浮点数转换为整数类型,要求四舍五入。
输入:14.99
输出:15
于是乎,我就开始动手了
写出了这么一长串愚蠢的代码 = =
#include<stdio.h>
int main()
{
float num = 0.0f;
float surplus = 0.0f;
scanf("%f", &num);
surplus = num - (int)num;
if(num > 0.0)
{
if(surplus >= 0.5)
{
printf("%d\n", (int)num+1);
}
else
{
printf("%d\n", (int)num);
}
}
else
{
if(surplus <= -0.5)
{
printf("%d\n", (int)num-1);
}
else
{
printf("%d\n", (int)num);
}
}
}
自信满满,提交,通过!
然后鬼使神差的,看了一眼题解,好家伙,不看不知道,一看吓一跳,被自己蠢哭了o(╥﹏╥)o
#include<stdio.h>
int main()
{
float a;
scanf("%f", &a);
printf("%.0f", a);
return 0;
}
然后我打开了万能的百度~
自此,我才知道,浮点型的输出格式还能这么用!
既然到这里了,我就来总结总结浮点型的输出格式吧~
首先是float类型
正常输出格式%f
限制长度的输出格式%.nf,n为正整数,表示输出小数点后几位,当n为0时,输出浮点数的整数部分,不输出小数点和小数点以下部分。小数部分 4 舍 5 入。
然后时double类型(基本一致,就是多了个l)
正常输出格式%lf
限制长度的输出格式%.nlf,n为正整数,表示输出小数点后几位,当n为0时,输出浮点数的整数部分,不输出小数点和小数点以下部分。小数部分 4 舍 5 入。
以后记得,四舍五入的话,不要再像我那么蠢了!!(⊙︿⊙)
The end!