在c/c++中我们经常由于需要,要把浮点型数据(float、double)转换成整形数据(各种int),下面我给大家介绍一下我所知道的,希望能给大家以后的编程带来方便:

1.普通的强制转换:可实现 “下行”整型化——即将浮点数变成小于它的最大整数

c标准     int i;

double x=5.4;

i=(int)x;

此时我们得到的i的值为5;即将浮点型的小数部分去掉。

c++标准   int i;

double x=5.4;

i=int(x);

所得结果与前者一样,i的值为5,即将浮点型的小数部分去掉。

2.实现四舍五入(m舍n入):

想几舍几入最简单的办法是在原数上加个0.n就可以了,如:想四舍五入就——5.4  int(5.4+0.5)=5

5.5   int(5.5+0.5)=6

又如:想二舍三入就——5.2  int(5.2+0.7)=5
5.3 int(5.3+0.7)=6

3.实现“上行”整型化:即

①使用c/c++标准库函数:ceil()  需要加载头文件c中加载#include<math.h>  c++中加载#include<cmath>

具体如:int i;      double x=5.4;        i=ceil(x);      // i 等于6

int i;       double=2.0;          i=ceil(x);      // i 等于2

②自己编写函数,实现“上行”整型化:即将浮点数转换成大于它的最小的整数。

举例—if(x-(int)x)  i=(int)x+1;   //如果 x-(int)x不等于0(这里实际上是 大于0),则 i 等于 i 的“下行”整型化加1

else i=(int)x;           //否则(即x-(int)x=0) i 等于(int)i   这里表面上是进行了“下行”运算,实际上

x=n.0    (int) x 就是将 2.0 变成 2  。

在日常编程中,我们经常需要将 浮点数 换为 整数 或者将 整数 换为 浮点数 。在C/ C++ 编程中,我们可以使用强制类型 换操作符,例如’(int)float_number’,将 浮点数 直接 换为 整数 。同样地,我们也可以使用显式类型 换操作符,例如’(float)int_number’,将 整数 强制 换为 浮点数 。实际上,这种 换只是在 整数 后面加上一个虚拟的小数点,将其 换为 浮点数 。以上就是将 浮点数 换为 整数 和将 整数 换为 浮点数 的方法介绍,希望本文能够对开发者有所帮助。将 浮点数 换为 整数 —— 浮点数 整数 之间的 换方法详解。 二、 数据 类型 主要掌握: 1.值类型:int 整型 ,float 浮点型 (单精度), double 双精度,char 字符型,bool 布尔型(两种状态true与false),datetime  日期时间 2.引用类型:string 字符串类型 a.字符串与字符的区别:string类型使用 “”,char用”,可以说字符串是字符的集合。eg:string s=”abc”;char s1=’a‘,’b’,’c’; 在vc中,如果你将一个 浮点数 强制 转换成 一个 整数 ,比如int i = (int)f;那么简单的一句话,就有可能被编译器 换为一个函数调用,就是_ftol2,参数为一个 浮点数 ,开始函数调用前,该参数已经被压入浮点寄存器堆栈st(0)中,取整规则为去尾,即偏向0。浮点寄存器堆栈一共从st(0)到st(7),可以看做一个循环队列。堆栈顶端为st(0),st(0)简称st _ftol2: 0040142C ... C++ 从float到int 一次在写代码的时候,天真的将一个double强行 换到int,以为能够得到double中的 整数 部分,结果却得到0。那个时候挺费解,就去查了一下double的存储方式,才发现 浮点型 的存储方式和int的是大相径庭。 整理一下资料,简单介绍一下浮点这种存储方式,希望能够帮助到一些朋友。 一、浮点的存储方式 在 C++ 中一个float是32位,一个doub 正常的float 换为 int 的情况是采用去尾巴的方式,也就是说去掉小数点后面的数值。 1.  常规的float 换为 int  : 例如: 9.34  =  (int) 9   ;  9.99 =  (int) 9  。 #include int main() float i = 9.34; float j = 9.99; int a, b; a = (int) i; C++ 浮点数 有以下四种取整方式:ceil()、floor()、round()、int() ceil() floor() round()都在cmath头文件下定义 每种方法之间都有些许的差异(废话) 话不多说,直接总结 x为 浮点数 整数 也可以) floor(x) 向下取整,取小于等于x的 整数 ; ceil(x) 向上取整,取大于等于x的 整数 ; round(x) 四舍五入取整; int(x) 向0取整,取近0端 整数 ; 代码&执行结果 #include double floor(doublex);float floorf(floatx);long double floorl(long doublex);double floor(double x);double ceil(double x);使用floor函数。floor(x)返回的是小于或等于x的最大 整数 。如: floor(10.5) == 10 floor(-... 这几天接触到了一个问题就是: 浮点数 化为 整数 的方法,因为平时这方面用的比较少所以有很多知识都忘记了,所以今天结合工具书,将这部分内容做个实验加深印象。同时也给有需要的小伙伴做以参考。 测试C语言 浮点数 化为 整数 的方法 方法1:强制 换,直接舍弃 #include <stdio.h> int test01(f){ int a; a = (int)f;//暴力 换,直接舍弃小数部分,只截取 整数 return a; int main(void