float类型和int类型怎么相加,相加值怎么输出

 我来答
娱乐小八卦啊a
高粉答主

2020-03-28 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117858

向TA提问 私信TA
展开全部

浮点数做运算,编译器会默认都转成double类型。float转int精度会丢失,所以强制将int转float。

除非强制转换:return (float) (a+b);

计算机硬件进行算术操作时,要求各操作数的类型具有相同的大小(存储位数)及存储方式。例如,由于各操作数大小不同,硬件不能将 char 型( 1 字节)数据与 int 型( 2 或 4 字节)数据直接参与运算;由于存储方式的不同,也不能将 int 型数据与 float 型数据直接参与运算。

然而,由于 C 语言编程的灵活性,在一个表达式或一条语句中,允许不同类型的数据混合运算。

C 语言的灵活性与计算机硬件的机械性是一对矛盾,如处理不好,将会产生错误结果。对于某些类型的转换编译器可隐式地自动进行,不需人工干预,称这种转换为自动类型转换;而有些类型转换需要编程者显式指定,通常,把这种类型转换称为强制类型转换。

扩展资料

在使用强制转换时应注意以下问题:

1、类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。

2、无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。

例1:

main()

{

float f=5.75;

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

}

f=5,f=5.750000

将float f强制转换成int f float f=5.75;printf("(int)f=%d,f=%f\n",(int)f,f); 本例表明,f虽强制转为int型,但只在运算中起作用, 是临时的,而f本身的类型并不改变。因此,(int)f的值为 5(删去了小数)而f的值仍为5.75。

听不清啊
高粉答主

推荐于2018-02-13 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
float x=1.57,y;

int a,b,c;
a=x;
b=(int)x; //强制类型转换,丢弃小数
c=2+x; //自动类型转换,丢弃小数
y=2+x;
printf("%.0f %d %d\n",x,a,b); //会输出 2 1 1 “.0f”格式会自动四舍五入
printf("%.2f %d\n",y,c); //会输出 3.57 3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shine80617770
2016-01-25
知道答主
回答量:18
采纳率:0%
帮助的人:4.5万
展开全部
可以直接相加,但是相加后得出的值是float型,如果需要得到int型,可以将它进行强制转化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chinaboyzyq
2016-01-24 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:3268万
展开全部
可以直接相加,用printf("%f",5.5+3);输出。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-01-24
展开全部
所以这里就涉及到了三个参数,一个是treads_cached这个是缓冲池中的线程个数。还有一个是treads_connected这个是连接中的线程数。第三个就是你说的这个。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式