概述
方法1:使用round()函数
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
float a;
cin >> a;
cout << round(a) << endl;
}
fix
朝零方向取整,如fix(-1.3)=-1; fix(1.3)=1;
floor
朝负无穷方向取整,如floor(-1.3)=-2; floor(1.3)=1;
ceil
朝正无穷方向取整,如ceil(-1.3)=-1; ceil(1.3)=2;
round
四舍五入到最近的整数,如round(-1.3)=-1;round(-1.52)=-2;round(1.3)=1;round(1.52)=2
方法2:利用scanf取整
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
double a;
scanf("%lf", &a);
int i = a;
a = a - i;
if(a > 0.5 || a == 0.5)
i += 1;
cout<<i<<endl;
return 0;
}
scanf("%d",&n)的工作原理是:
从当前输入流中开始读取字符,跳过所有的空白字符(空格、制表符、回车),直到第一个非空白字符。如果该字符为数字,继续向后读入字符,直到遇到第一个非数字字符,将该字符放回输入缓冲区中。然后,将读到的所有数字字符转换成一个整型数,并赋值给变量n。最后,返回成功读入的数据个数1。
如果scanf读到的第一个非空白字符不是数字,那么认为读取失败,n将不会被赋值,同时返回成功读入的数据个数0。
如果scanf读到EOF标志,则结束读入并返回-1。之前读入的所有数字仍然会被转换为整型并赋值给n。
方法3: int向下取整
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
float n;
cin>>n;
int d=n;
float num=d+0.5;
if(n>=num)
cout<<d+1<<endl;
else
cout<<d<<endl;
return 0;
}
最后
以上就是天真店员为你收集整理的牛客网华为机测-6-取近似值的全部内容,希望文章能够帮你解决牛客网华为机测-6-取近似值所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复