在C语言中,如何将一个浮点数变换成整数

作者&投稿:辕符 (若有异议请与网页底部的电邮联系)

在C语言中,将一个浮点数变换成整数的示例:

main()

{

float f=5.75;

printf("f=%d,f=%f
",(int)f,f);

}

执行程序,输出结果为f=5,f=5.750000。 f=5即为由浮点数转化出的整数。

上述示例中f虽强制转为int型,但只在运算中起作用, 是临时的,而f本身的类型并不改变。因此,(int)f的值为 5(删去了小数)而f的值仍为5.75。


扩展资料

C语言中赋值中的类型转换规则

当赋值运算符两边的运算对象类型不同时,将要发生类型转换, 转换的规则是:把赋值运算符右侧表达式的类型转换为左侧变量的类型。具体的转换如下:

(1) 浮点型与整型

将浮点数(单双精度)转换为整数时,将舍弃浮点数的小数部分, 只保留整数部分。将整型值赋给浮点型变量,数值不变,只将形式改为浮点形式, 即小数点后带若干个0。注意:赋值时的类型转换实际上是强制的。

(2) 单、双精度浮点型

由于C语言中的浮点值总是用双精度表示的,所以float 型数据只是在尾部加0延长为double型数据参加运算,然后直接赋值。double型数据转换为float型时,通过截尾数来实现,截断前要进行四舍五入操作。

(3) char型与int型

int型数值赋给char型变量时,只保留其最低8位,高位部分舍弃。

char型数值赋给int型变量时, 一些编译程序不管其值大小都作正数处理,而另一些编译程序在转换时,若char型数据值大于127,就作为负数处理。

对于使用者来讲,如果原来char型数据取正值,转换后仍为正值;如果原来char型值可正可负,则转换后也仍然保持原值, 只是数据的内部表示形式有所不同。



~

c语言中浮点型转换为整型有哪些方法?
答:C语言中,浮点型转换为整型可以用:强制类型转换、自动类型转换,例如:(int)3.14、int a = 3.14。1、强制类型转换 强制类型转换是通过类型转换运算来实现的。其一般形式为:(类型说明符)(表达式),其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。例如: (double) a 把a转换为双...

C语言怎样将浮点数转换成整数?
答:1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。2、在test.cpp文件中,输入C语言代码:double a = 2.71828;printf("%d", int(a));。3、编译器运行test.cpp文件,此时成功将浮点数2.71828转换为了整数2。

C语言如何将浮点数转为人民币 如123456701.22转为一亿两千三百四十五...
答:char RMB[10][3]={"零","一","二","三","四","五","六","七","八","九"};char value[13][3]={"零","十","百","千","万","十","百","千","亿","十","百","千","万"};char faction[2][3]={"角","分"};void StyleChange(const char *str){ int i,j...

用C语言程序将一个十进制的浮点数转化为R进制的浮点数
答:算法:(1)将该数X的整数与小数部分分开为m和n (2)对m,反复进行:除以R取余数,保存到一个数组a中,除以R取整,作为新的R,直到R为0;(3)对n,反复进行:将乘以R后的整数部分保存到另一个数组b中,小数部分作为新的n,直到b数组的位数满足精度要求;(4)输出 :整数部分为将a中的内容...

C语言中如何实现将一个浮点数float转成int类型?
答:强制类型转换 比如:float a = 10.5;int b = (int)a;这样 就转换了,但是不推荐高精度转低精度 会丢失精度的 就像这个,a是10.5 转换后变成10了小了太多

c语言中如何将10进制的浮点数转化为16进制存放到char型数组中?
答:我用的基本方法是union(联合)代码如下:union UFLOAT { float f; // 4个字节浮点型变量 byte by4[4]; // 字节数组,元素为4 } 由于用了union,上面定义的变量占用4字节的内存,也就是说f和by4是共用这4字节内存的。对浮点的转化变得异常简单。float fNum=100.0; // 待操作的浮点...

C语言中,单精度浮点数十进制时是22.84,转化为16进制是多少,怎么转化的...
答:还可以先“用2除反向取余数”和“用2乘正向取整数”变成二进制,再从小数点开始左右每4位分开,前后不足4位的用0补齐,然后用对应的16进制符号直接写出来就可以了。22.84化成二进制是10110.11010111000010100011...→1'0110.1101'0111'0000'1010'0011→0001'0110.1101'0111'0000'1010'0011→16....

c语言 单精度浮点数是怎样转换成2进制数
答:将一个实数转化为C++实数存储格式的步骤为:(1)先将这个实数的绝对值化为二进制格式,注意实数的整数部分和小数部分化为二进制的方法是不同的。(2)将这个二进制格式实数的小数点左移或右移n位,直到小数点移动到第一个有效数字的右边。(3)从小数点右边第一位开始数出二十三位数字放入第22到第...

C语言中如何把浮点数1.234567转换成整数123?
答:float f = 1.234567;int i = (int)(f*100);

c语言如何把浮点数转换成二进制
答:这就设计到浮点数的 表示方法了:C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,我们在声明一个变量float f= 2.25f的时候,是如何分配内存的呢?如果胡乱分配,那世界岂不是乱套了么,其实不论是float还是double在...