强制类型转换优先级是什么?

c语言中 强制类型转换的一般形式是什么?_百度知道
c语言中 强制类型转换的一般形式是什么?
强制类型转换的一般形式为:(类型说明符)(表达式),例如: (float) a 把a转换为浮点型,(int)(x+y) 把x+y的结果转换为&整型强制类型转换是通过类型转换运算来实现的。功能是把表达式的运算结果强制转换成类型说明符所表示的类型。注意事项:①类型说明符和&表达式都必须加括号(单个&变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。②无论是&强制转换或是自动转换,都只是为了本次运算的需要而对&变量的数据长度进行的临时性转换,而不改变数据说明时对该&变量定义的类型。
其他类似问题
为您推荐:
//定义整型adouble b=(double)a;
//强制整型a转换双精度实型
来自团队:
强制类型转换的相关知识
其他3条回答
假设a转换int型int(a)或(int)a都
当操作数的类型不同,而且不属于基本数据类型时,经常需要强制类型转换,将操作数转化为所需要的类型。类型转换;   1.自动类型转换   2.强制类型转换   自动类型转换分两种情况:1,不同类型的数据进行运算时,系统会自动将运算优先级别低的转换成级别高的,结果和运算级别高的数据类型一样。2,赋值运算符两边类型不一样时,系统会自动将右侧表达式的类型转换成左侧的变量类型,然后再赋值   强制类型转换:   如:(int)3.1415 //就是取整数部分   (int)a%10 //取a的个位数   若a是int型,取a的平方根就是 sqrt((double)a)
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁共有 1646 人关注过本帖
标题:当double类型强制转换为int时,百分位少了1,请教这是什么原因?
等 级:新手上路
结帖率:100%
&&已结贴√
&&问题点数:20&&回复次数:7&&&
当double类型强制转换为int时,百分位少了1,请教这是什么原因?
这是我在自学《c语言入门经典》时遇到的问题,第二章习题3:一个产品有两个版本,其一价格为$3.5,其一价格为$5.5(本人修改为3.55和5.55),编写一个程序提示用户输入产品版本和数量,然后根据产品数量,计算并输出价格。——因为该书习题4是要求以“** dollars and ** cents”的格式输出某工人的时薪,所以我结合起来写到:
#include &stdio.h&
#include &stdlib.h&
int main(void)
&&& int quantity = 0;
&&& const double prince_1 = 3.55;
&&& const double prince_2 = 5.55;
&&& int type = 0;
&&& double total = 0.0;
&&& double cents = 0.0;
&&& int k = 0;
&&& printf(&Input the type of book is 1 or 2?\n&);
&&& scanf(&%d&,&type);
&&& printf(&Input the quantity of books are :&);
&&& scanf(&%d&,&quantity);
&&& total = quantity*(prince_1+(type-1)*(prince_2-prince_1));
&&& printf(&\nThe total are %.5f\n&,total);
&&& cents = total-(int)/*这一段是为了看清楚哪步出了问题,才拆开写的*/
&&& printf(&%f\n&,cents);
&&& cents = 100*(total-(int)total);
&&& printf(&%f\n&,cents);
&&& k = (int)
&&& printf(&\n\n %d dollars and %d cents&,(int)total,k);
&&& return 0;
可是在我输入产品为1,数量为32时,明明应该是$113.60
输出的却是113 dollars and 59 cents
请问这是为什么?
附件: 只有本站会员才能下载或查看附件,请
搜索更多相关主题的帖子:
&&&&&&&&&&
等 级:侠之大者
帖 子:145
专家分:420
你不会是跳过了数据类型开始学的吧?
好吧..硬要解释的话那个59的话.. double的 0.60 不是 0.60 ....有点挠头哈..而是一个接近0.60的数.. 可能是0.99
你把59.99 强制转换为INT, 小数部分丢弃,所以就变59了
其实是我猜的...并不完全了解...
[ 本帖最后由 Ryker 于
21:12 编辑 ]
来 自:迪拜
等 级:蝙蝠侠
帖 子:223
专家分:856
精度缺失!
练就一身本领,只为笑傲江湖!
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2387
专家分:13364
应该是某个精度确实了,
等 级:新手上路
回复 2楼 Ryker
没跳过啊,可能是自学得不够仔细吧。
等 级:新手上路
回复 4楼 邓士林
感谢版主回复,请教这种问题该如何避免或修正呢?
等 级:新手上路
回复 3楼 笑傲
谢谢,请教该如何修改程序才能避免这类问题,或者说在今后遇到类似的问题该如何处理?——有这方面专题的文章可以推荐吗?
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1231
专家分:3855
&&得分:10&
程序代码:#include &stdio.h&
#include &stdlib.h&
int main(void)
&&& int quantity = <font color=#;
&&& const double prince_1 = <font color=#.55;
&&& const double prince_2 = <font color=#.55;
&&& int type = <font color=#;
&&& double total = <font color=#.0;
&&& double cents = <font color=#.0;
&&& int k = <font color=#;
&&& printf(&Input the type of book is 1 or 2?\n&);
&&& scanf(&%d&,&type);
&&& printf(&Input the quantity of books are :&);
&&& scanf(&%d&,&quantity);
&&& total = quantity*(prince_1+(type-<font color=#)*(prince_2-prince_1));
&&& printf(&\nThe total are %.5f\n&,total);
&&& cents = total-(int)/*这一段是为了看清楚哪步出了问题,才拆开写的*/
&&& printf(&%f\n&,cents);
&&& cents = <font color=#*(total-(int)total);
&&& printf(&%f\n&,cents);
&&& printf(&\n\n %d dollars and %g cents&,(int)total,cents); //可以试试用%g输出!!
&&& return <font color=#;
附件: 只有本站会员才能下载或查看附件,请
因为我是菜鸟,所以应该被骂!
细节+坚持=成功!
版权所有,并保留所有权利。
Powered by , Processed in 0.023890 second(s), 9 queries.
Copyright&, BCCN.NET, All Rights Reserved强制转换_百度百科
本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来吧!
定义:指的发行人通过行使而强制投资者将证券转换成为预定数目的证券。
强制转换 Forced Conversion
信息技术——编程
定义:在、、、等中,将某一变量的类型强制转化成另一类型。
float a=10; // 定义 a为 float 型。
int b=(int)a;// 定义b 为 int 型。然后把 float型的 a 强制转换成 int型。再把a的值 赋值给
强制转换是指java中的向下转型,因为向下转型的时候会丢失精度。向上转型不需要强制,如:
int a= 10;//定义a为int型。
float b = //定义b为float型。然后把a的值赋给b。这种就是向上转型
int b=10;//声明变量为int型并初始化赋值
(&%f&,b*5.0);//打印为的数字,强制将10*5.0结果为50.000000
float a=2.1314;//声明变量为实数型并初始化赋值
int c=(int)//声明变量c为int型并将a强制转换为int型所得值赋给c,即c=2
printf(&%d %f&,c,a);//输出结果为2 2.131400}

我要回帖

更多关于 强制类型转换 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信