Notce:
C++的四舍五入:
参考:https://blog.csdn.net/dangzhangjing97/article/details/812798621.自己实现的思路:如果直接对一个浮点数取四舍五入,不保留小数部分,
那么我们的思路是:正数加上0.5,负数减去0.5。
#include<iostream>usingnamespace std;intround1(double number){return(number>0.0)?(number+0.5):(number-0.5);}
或者:
#include<iostream>#include<cmath>usingnamespace std;intround2(double number){return(number>0.0)?floor(number+0.5):ceil(number-0.5);}
注意:
int m,n;
cin >> n;
m = n /2+0.5; 这样不能实现四舍五入。因为做第一个除法的时候,取值直接截断了。
正确做法:
1.m =1.0* n /2+0.5;//先转为浮点数2.m =(n +1)/2;//最后做除法3.m = n /2+ n %2;//表示偶数等于除以2,奇数要除以2加1的意思2.用现成的round()函数
注:
(1) Floor()会取不大于自变量的最大整数,这样自变量是3.1或3.9是没有区别的,
返回都是3;自变量是-2.1或-2.9也是没有区别的,返回都是-3;
(2) Ceil()会取不小于自变量的最大整数,这样自变量是3.1或3.9,返回都是4;
自变量是-2.1或-2.9,返回的都是-2;
(3) Round()函数,才是我们需要的四舍五入的函数,因为它会返回离自变量最近的整数,
这个返回的整数可能大于也可能小于原来的数,但是一定是离它最近的那个整数。
注:floor(),ceil(),round()函数都包含在头文件“Math.h”中,c++的<cmath>。
#include<iostream>#include<algorithm>usingnamespace std;intmain(){int c1,c2;
cin >> c1 >> c2;int t =((c2 - c1)+50)/100;//四舍五入int h,m,s;
h = t /3600;
t %=3600;
m = t /60;
t %=60;//cout << h << ": " << m << ": " << t;printf("%02d:%02d:%02d",h,m,t);return0;}