当前位置: 首页 > 面试题库 >

Java-整数除法:如何产生双精度?

黎曾笑
2023-03-14
问题内容

对于此代码块:

int num = 5;
int denom = 7;
double d = num / denom;

的值d就是0.0。它可以通过强制转换来工作:

double d = ((double) num) / denom;

但是还有另一种方法来获得正确的double结果吗?我不喜欢强制转换原语,谁知道会发生什么。


问题答案:
double num = 5;

这样可以避免强制转换。但是你会发现强制转换的定义很明确。你不必猜测,只需检查JLS即可。从int到double是一个不断扩大的转换。从第5.1.2节开始:



 类似资料:
  • 问题内容: 是否有可能做到这一点? 我知道代码可能不会去这样的事情,但怎么也去了? 问题答案: 这将检查双精度值的四舍五入值是否与双精度值相同。 你的变量可能具有或值,并且始终具有int值,因此,如果你的变量等于,则它必须具有int值。 如果变量的值是无穷大或负无穷大,那么这也不起作用,因此向条件添加“只要变量不是无穷大”。

  • 考虑到8字节的双精度可以精确地表示所有4字节的整数,我想知道将存储整数的双精度a除以存储整数的双精度B(这样整数B除以a)是否总能得到与整数对应的精确双精度,即它们的商?那么,如果B和C是整数,并且B*C在32位int内,那么可以保证 IEEE754标准是否保证了这一点? 在我的测试中,它似乎适用于我尝试过的所有示例。在Python中: 问这个问题的原因是Matlab很难处理ints,所以我通常只

  • 问题内容: 这是故意的吗?我强烈记得以前的版本返回了吗?我该怎么办,有没有新的分公司运营商,或者我必须始终选拔? 问题答案: 更改除法运算符

  • 问题内容: 我的json中有整数,并且我不希望gson将其转换为双精度。以下内容不起作用: 输出不是我想要的: 有没有办法在我的地图中使用整数而不是双精度? 编辑: 不是我所有的字段都是整数。我已经相应地修改了我的示例。我已经在线阅读了很多示例,包括此站点上的一些答案,但在特定情况下不起作用。 问题答案: 1)您必须创建自定义而不是您的问题。 2)我不认为这种行为来自解串器。它更像是json对象/

  • 问题内容: 我在考虑使用C#或Java之类的语言时如何显示分页控件。 如果我有x个项目想要以每页y个块的形式显示,那么需要多少个页面? 问题答案: Ian提供的整数数学解决方案很好,但存在整数溢出错误。假设变量为all ,则解决方案可以重写为使用数学运算并避免错误: 如果为,则错误仍然存​​在。模数解决方案没有错误。

  • 问题内容: 在另一个Bruce Eckels演习中,计算速度,其中s和t是整数。我如何做到这一点,以便该部门提高浮力? 问题答案: 只需先将两个操作数之一转换为浮点数即可。 演员表的优先级高于分区,因此发生在分区之前。 另一个操作数将由编译器自动有效地强制转换为浮点数,因为规则指出,如果另一个操作数为浮点型,则即使另一个操作数是整数,该操作也将是浮点运算。