为了避免 “似是而非” 还是记录一下
#include <cmath>
浮点数 转 整型 int
cout << int(2.1) << endl; // 2
cout << int(-2.1) << endl; // 2
cout << int(2.8) << endl; // 2
cout << int(-2.8) << endl; // 2
这种直接转换采用的是“断尾”,不论正负数直接舍弃小数位
整除 /
int a = 5;
cout << a / 2 << endl; // 2
cout << -a / 2 << endl; // -2
整除运算也是“断尾”取整,不论正负数直接舍弃小数位
向下取整 floor
cout << floor(2.1) << endl; // 2
cout << floor(-2.1) << endl; // -3
cout << floor(2.8) << endl; // 2
cout << floor(-2.8) << endl; // -3
向下取整就是取该浮点值在数轴上,左侧的整数值,不考虑远近。正负数取值有差异。
向上取整 ceil
cout << ceil(2.1) << endl; // 3
cout << ceil(-2.1) << endl; // -2
cout << ceil(2.8) << endl; // 3
cout << ceil(-2.8) << endl; // -2
与向下取整刚好相反,取右侧的整数值,不考虑远近。正负值有差异。
四舍五入 round
cout << round(2.5) << endl; // 3
cout << round(-2.5) << endl; // -3
cout << round(2.5) << endl; // 3
cout << round(-2.5) << endl; // -3
四舍五入取整,数值无差异,与正负号无关