求c++程序将一个小数转换为最近的整数
求c++程序将一个小数转换为最近的整数
[解决办法]
#include<iostream>#include<cmath>using namespace std;int main(){ double a; cin>>a; if(int(a+0.5) == int(a+1)) cout<<ceil(a); if(int(a+0.5)< int(a+1)) cout<<int(a); system("pause"); return 0;}
[解决办法]
#include<iostream>#include<cmath>using namespace std;int main(){ double a; cin>>a; if((int)(a+0.5) == (int)(a+1)) cout<<ceil(a); if((int)(a+0.5)< (int)(a+1)) cout<<(int)a; system("pause"); return 0;}
[解决办法]
#include<iostream>
或者直接用C语言标准库函数double nearbyint(double x);
#include<cmath>using namespace std;int main(){ double a; cin>>a; cout<<nearbyint(a); system("pause"); return 0;}以下是循环版本#include<iostream>#include<cmath>using namespace std;int main(){ double a; cout<<"请输入一个数,按enter键得到最接近该数的整数,按q结束输入:"<<endl; while(cin>>a && (char)a != 'q') { cout<<nearbyint(a)<<endl; if((char)a == 'q') break; } system("pause"); return 0;}
[解决办法]
#include <iostream>using namespace std;int f_to_int(double f){ return int(f+0.5)>int(f)?int(f+0.5):int(f);}int main(void){ double f=9.5001,f1=9.4999; cout<<f<<" : "<<f_to_int(f)<<endl; cout<<f1<<" : "<<f_to_int(f1)<<endl;; system("pause"); return 0;}
[解决办法]