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

 我来答
幻翼高达Zero
2019-07-22 · TA获得超过1.7万个赞
知道答主
回答量:499
采纳率:0%
帮助的人:7.1万
展开全部

需要准备的材料分别有:电脑、C语言编译器

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

2、在test.cpp文件中,输入C语言代码:double a = 2.71828;printf("%d", int(a));。

3、编译器运行test.cpp文件,此时成功将浮点数2.71828转换为了整数2。

帐号已注销
2019-07-13 · TA获得超过1.2万个赞
知道答主
回答量:25
采纳率:0%
帮助的人:5569
展开全部

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

main()

{

float f=5.75;

printf("f=%d,f=%f\n",(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型值可正可负,则转换后也仍然保持原值, 只是数据的内部表示形式有所不同。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Vampire036
2012-05-08
知道答主
回答量:12
采纳率:0%
帮助的人:1.7万
展开全部
c语言提供了强制类型转换运算符,可以强制将一个表达式的值转换成所需类型。
例如:(double)a 可以把a强制转换成double型的。
还有一种数据类型转换是系统自动的。参考相关书籍即可。例如将一个实型的数据赋给整型的变量时。系统自动把实数的整数部分赋给整型变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
QunZhuZi
推荐于2017-09-02 · TA获得超过402个赞
知道小有建树答主
回答量:247
采纳率:0%
帮助的人:57.6万
展开全部
强制类型转换运算 比如
float a=3.5;
int c;
c=(int)a;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zsx10110
2012-05-06 · TA获得超过8871个赞
知道大有可为答主
回答量:2369
采纳率:66%
帮助的人:3052万
展开全部
直接进行强转啊
double c = 1.2;
int a = int(c);不就可以了吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式