首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我在输入后得到int值,但是十进制值在括号中?

问为什么我在输入后得到int值,但是十进制值在括号中?
EN

Stack Overflow用户
提问于 2022-09-10 08:35:33
回答 2查看 77关注 0票数 0

我对c++很熟悉,但今天我注意到了一些事情,

代码语言:javascript
复制
float a=(float)5/2; //this gives 2.5, its okay
float b=(float)(5/2); //this gives 2, why?

请你说出这个话题,任何答案都会帮助我。

EN

回答 2

Stack Overflow用户

发布于 2022-09-10 08:38:51

在括号(5/2)中的这个表达式中,使用了整数算法。表达式的结果是2。

在这个表达式(float)5/2中,使用了浮动算法,因为其中一个操作数在显式转换(float)5之后具有float类型。一元浇铸操作符比除法操作符/具有更高的优先级。

你可以写得相当好

代码语言:javascript
复制
5.f/2
票数 2
EN

Stack Overflow用户

发布于 2022-09-10 09:14:14

这是一个运算符优先的问题。当你写

代码语言:javascript
复制
(float)5/2

它被解释为

代码语言:javascript
复制
((float) 5) / 2

这意味着“将5视为一个浮点数,然后将其除以整数2”。因此,除法是作为浮点除法进行的.

当你写

代码语言:javascript
复制
(float)(5/2)

您的意思是“整数5除以整数2,然后将其视为浮点数。”因此,所做的除法是整数除法,这样就可以得到2作为结果。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73670405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档