首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为双值解释“累积舍入错误”。

为双值解释“累积舍入错误”。
EN

Stack Overflow用户
提问于 2013-10-21 19:34:25
回答 4查看 1.2K关注 0票数 2

我是一个自学成才的java初学者,在相同的等式中使用时,我很难理解int和doubles。

例如,

代码语言:javascript
运行
复制
int x;
double x;
i = 5;

x = i / 2 + 1.0; // (answer 3.0)

z = (int) 1.0 + i / 2.0; // (answer 3.5)

四舍五入怎么回事?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-10-21 19:35:51

问题是这次行动:

代码语言:javascript
运行
复制
i / 2

..。正在执行整数除法。这就是为什么5 / 2给出的结果是2,而不是2.5。这是Java中的正常行为,要执行浮点除法,必须确保至少有一个操作数是浮点文本:

代码语言:javascript
运行
复制
5 / 2.0

现在,如预期的那样,上面的内容将返回2.5。或者,您可以强制转换其中一个操作数:

代码语言:javascript
运行
复制
((double) i) / 2
票数 6
EN

Stack Overflow用户

发布于 2013-10-21 19:36:44

包含两个int的除法将产生一个int(因此,5/2= 2)。如果在其中一个操作数中使用double,它将产生一个double (因此5/ 2.0 = 2.5)。其余的是操作优先级。

票数 0
EN

Stack Overflow用户

发布于 2013-10-21 19:40:04

i / 2 = int 2,因为两个操作数都是整数,因此使用整数除法操作(产生整数结果)。

i / 2.0 = double 2.5,因为我首先被强制使用double (另一个操作数的类型),并且使用双重除法。

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

https://stackoverflow.com/questions/19503152

复制
相关文章

相似问题

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