C语言整数类型转换函数

文章目录

  • 概述
    • 强制类型转换
      • 使用GCC编译器,版本为TDM-GCC 4.9.2
    • ceil(往上取最小整数)/round(四舍五入)/floor(取整数部分)

概述

本人之前从来不知道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.csdn.net/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);

你可能感兴趣的:(#,C)