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

在Java中将double与int进行比较是否有效?

程墨竹
2023-03-14
问题内容
Utilities.getDistance(uni, enemyuni) <= uni.getAttackRange()

Utilities.getDistance返回double,而getAttackRange返回int。上面的代码是if语句的一部分,它必须为true。那比较有效吗?

谢谢


问题答案:

是的,它是有效的-这将推动intdouble执行比较之前。

请参阅JLS第15.20.1节(数值比较运算符),该链接链接到JLS第5.6.2节(二进制数值提升)。

从后者:

扩展原语转换(第5.1.2节)适用于转换以下规则指定的一个或两个操作数:

  • 如果一个操作数的类型为double,则另一个将转换为double。



 类似资料:
  • 问题内容: 当我测试此代码时: 我期待一个真实,真实,真实,错误。因为这: 在java.sql.Timestamp的javadoc中,它指出: 注意:此类型是java.util.Date和单独的纳秒值的组合。仅整数秒存储在java.util.Date组件中。小数秒-纳米- 是分开的。传递值java.util.Date类型的值时,Timestamp.equals(Object)方法从不返回true,

  • 我想知道如何创建一个if语句,如果提供的int与输入的任何顺序匹配,该语句将为真。例如,如果int为745,则使754、547或457返回true。我想把它变成一个字符串,然后提取每个字符值,并将字符值相加,使其成为比较值。这行吗?对不起,如果这个问题是愚蠢的,我是java新手。提前谢谢 更新 我开发了一个有效的代码,除了在输入时有效,例如647,我将其与638进行比较,因为它们都具有相等的字符值

  • 问题内容: 如果我使用像这样的比较(a是int,b和c是float / double)是否安全: 它可能听起来很荒谬,但是在我的旧编程语言中,有时1 + 2 == 3是错误的(因为左侧返回2.99999999999 …)。而且,这呢: 问题答案: 通常,由于不能精确地将许多十进制数字表示为or 值,因此这样做并不安全。经常陈述的解决方案是测试数字之间的差异是否小于某个“小”值(在数学文献中通常用希

  • 我创建了一个,当调用变量为ISE时,它会读取相关数据的表。但是,如果我尝试将与另一个对象进行比较,无法正确读取。我想告诉脚本,如果现有CSV中的任何行与匹配,则不会将数据导出到CSV,换句话说,跳过CSV文件中的重复行。CSV可能有也可能没有多行。

  • 问题内容: 我知道这是一个包装类,它包装数字。今天,我看到了另一个主要区别: 我真奇怪! 因此,如果每次使用,我们都必须执行以下操作: 我无法解释为什么Double直接将比较做错了。请为我解释。 问题答案: 而在技术上两个不同的对象和运营商只比较引用。 更好,因为它比较值而不是引用。但是仍然不理想。直接比较浮点值应始终将一些误差(ε)考虑在内()。 注意: 这里的比较会产生,但是比较复杂(内部缓存

  • 问题内容: 我有以下代码,并收到上述错误。由于我是python的新手,因此无法理解这里的语法以及如何解决错误: 问题答案: 有一种从日期时间转换为日期的方法。 要进行相反的转换,可以使用此功能