强制类型转换取整相关
- 前言
- 取整方法
- 例:(signed int)double
- 四舍五入取整
前言
开发中一般运算过程都采用浮点类型数据以免出现运算不精确的错误,而当运算结果需要时整型的时候就需要对浮点类型的结果进行取整处理,而取整的方法有向上取整,向下取整,以及熟悉的四舍五入取整,下面就介绍强制类型转换取整的内容。
取整方法
向上取整:比自己大的最小整数;
向下取整:比自己小的最大整数;
四舍五入:更接近自己的整数。
例:(signed int)double
下面以(signed int)double为例,研究强制类型转换如何进行取整。
#include <QtCore/QCoreApplication>
#include <QtDebug>
typedef signed int INT;int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);qDebug()<<QString::fromLocal8Bit("强制类型转换(int)double///");double param1 = -0.1; qDebug()<<(INT)param1;double param2 = -0.5; qDebug()<<(INT)param2;double param3 = -0.9; qDebug()<<(INT)param3;double param4 = -1.1; qDebug()<<(INT)param4;double param5 = -1.5; qDebug()<<(INT)param5;double param6 = -1.9; qDebug()<<(INT)param6;double param7 = 0.1; qDebug()<<(INT)param7;double param8 = 0.5; qDebug()<<(INT)param8;double param9 = 0.9; qDebug()<<(INT)param9;double param10 = 1.1; qDebug()<<(INT)param10;double param11 = 1.5; qDebug()<<(INT)param11;double param12= 1.9; qDebug()<<(INT)param12;return a.exec();
}
如上结果所示,强制类型转换的取整对于负数来说是向上取整,对于正数来说是向下取整,总的来说可以归结为向0取整。
四舍五入取整
由上节知:强制类型转换的取整对于负数来说是向上取整,对于正数来说是向下取整,则要实现四舍五入则可采取如下方法:
负数四舍五入取整:(INT)(param-0.5)
正数四舍五入取整:(INT)(param+0.5)