为了避免 “似是而非” 还是记录一下

#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

四舍五入取整,数值无差异,与正负号无关

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐