概述
本人之前从来不知道C语言有类型转换函数,一般的书上也没有介绍这些函数,今天用到一个要去float的整数部分的功能,于是就强制类型转换。虽然知道强制转换是抛弃其小数部分,但是如果我要用四舍五入的方法呢?
强制类型转换
使用GCC编译器,版本为TDM-GCC 4.9.2
float a,b;
a = 186.453;
b = 186.999;
int n = (int)(a);
int m = (int)(b);
cout << n << '\n' <<m;
运行结果:
186
186
分析:
在C++中,发现强制类型转换并不会四舍五入,会抛弃其小数部分,也就是说验证了其正确性;
ceil(往上取最小整数)/round(四舍五入)/floor(取整数部分)
可以点击下面链接,写的挺好的
https://blog.youkuaiyun.com/aouixh/article/details/53483556
这里总结一下:
有一个数据1.234
1.我要取整数部分,要1
可以使用floor函数(地板的意思),也可以强制转换;
2.我取比这个数大,即我要数据为2
可以使用方法1加上一个整数1,也可以使用ceil函数;
3.我要四舍五入的值
使用函数round;
(注意,还有一种取巧的方法,就是让这个数加上0.5f,具体实现方法可以自己想一想)
说明一下,在C中的math.h中有2中定义
double ceil(double x);
float ceil(float x);
在c++中,增加
long double ceil(long double x);