描述
将浮点数转换为整数类型,要求四舍五入。
输入描述:
随机输入的浮点数
输出描述:
四舍五入之后的整数
示例1
输入:
14.99输出:
15
源代码比较
#include <iostream>
using namespace std;
int main()
{
double a;
cin>>a;
if(a>=0)
{
if(a-int(a)<=0.4) cout<<(int)a;
else cout<<(int)(a+1)<<endl;
}
else
{
a=-a;
if(a-int(a)<=0.4) cout<<(int)(-a);
else cout<<(int)(-(a+1))<<endl;
}
}
vs
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
double d;
cin >> d;
printf("%.0f", d);
return 0;
}
vs
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double d;
cin >> d;
cout<<round(d)<<endl;
return 0;
}
代码一:
首先分类讨论,小数点后一位是4舍,非4进;但是负数并不是这个思路,因此最省事省力的方法是把负数变成正数,这是正常逻辑。
代码二:
这是一种很巧妙的方法,本人也是一小白,一直认为printf只适合出现在C语言中,通过查阅资料,printf()函数在c++中不仅可以输出,而且弥补了一些对cout输出的格式上的不足。
在c++中使用printf()函数,最好加上头文件#include <cstdio>
列举一些printf()函数在c++中的一些如有神助的作用:(主要是格式输出)
浮点数直接四舍五入成整数;
输出浮点数,可以设置精度来控制输出小数位数; printf("%.2lf",&d); 输出带有两位小数的浮点数;
输出前面带有0的整数; printf(“%0.2d”,&d);表示d输出两位数,若d只有一位数,则前面为0,多用于时间输出;
代码三:
这是c++中常用的直接输出四舍五入的函数round();一步即可。
可能这就是本手,妙手,俗手的区别的吧。