首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java中的简单除法--这是一个bug还是一个特性?

Java中的简单除法--这是一个bug还是一个特性?
EN

Stack Overflow用户
提问于 2010-05-26 08:29:53
回答 4查看 197.4K关注 0票数 26

我在一个Java应用程序中尝试这个简单的计算:

代码语言:javascript
复制
System.out.println("b=" + (1 - 7 / 10));

显然,我期望输出为b=0.3,但实际上我得到的是b=1

什么?!这一切为什么要发生?

如果我写道:

代码语言:javascript
复制
System.out.println("b=" + (1 - 0.7));

我得到了正确的结果,即b=0.3

这里出了什么问题?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-05-26 08:30:43

你使用的是整数除法。

请尝试使用7.0/10

票数 67
EN

Stack Overflow用户

发布于 2010-05-26 08:33:35

您已经在表达式7/10中使用了整数,整数7除以整数10等于零。

你所期望的是浮点除法。以下任何一项都会以您预期的方式进行评估:

代码语言:javascript
复制
7.0 / 10
7 / 10.0
7.0 / 10.0
7 / (double) 10
票数 29
EN

Stack Overflow用户

发布于 2010-05-26 09:46:50

我发现字母标识符可读性更好,更能指示解析类型:

代码语言:javascript
复制
1 - 7f / 10
1 - 7 / 10f

或者:

代码语言:javascript
复制
1 - 7d / 10
1 - 7 / 10d
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2909451

复制
相关文章

相似问题

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