当前位置: 首页 > 知识库问答 >
问题:

为什么system.out.println的输出是(5/2.0)*2);是5.0?[副本]

林泰平
2023-03-14

我想5是int。但没有变数。我不知道为什么输出是双倍。我已经试过Netbeans了。

共有1个答案

越琦
2023-03-14

乘法和除法是从左到右完成的(不管怎样,您在第一个操作周围加上圆括号),如果您将任何原始数字除以一个double,您将从中得到一个double。

5/2.0显然将首先进行评估。

所以,即使'5'是一个int值,如果你做5/2.0,你会得到一个double值(即2.5)。现在,在这一点上,您的代码已经在使用double。

当你将2.5乘以2时,你会输出5.0,因为2.5是双倍。

 类似资料:
  • 有人可以帮我理解吗 此语句是否正确:这意味着bcdc是Baseclass类类型,其值是Dervedclass对象类型?此外,这是什么意思,为什么一个对象会这样实例化,而不是让类类型与正在实例化的新对象相同,如? 为什么

  • 我是编程新手,我们从学校得到了一个例子来了解扫描仪是如何工作的。我的问题是,我不明白为什么消息“Input”(while循环中的System.out.println)会被打印两次。

  • 我想知道为什么下面的代码: 我被要求详细解释,但我不明白为什么输出是这样的。请有人帮帮我。

  • 我的理解是 x == 0 首先运行。但是 x 在计算时仍然是 -1 (y = y / x) == 0?否则它将除以零。我以为输出将是 -5,但日食说 5。我快疯了。

  • 问题内容: 如果多个线程在不同步的情况下调用System.out.println(String),输出是否可以交错?还是每行的写入都是原子的?该API只字不提同步的,所以这似乎是可能的,或者是由交错缓冲和/或虚拟机存储器模型等防止输出? 编辑: 例如,如果每个线程包含: 保证输出是: 或者可能是: 问题答案: 由于API文档没有提及System.out对象的线程安全性,因此该PrintStream

  • 问题内容: 为什么 初始空间 大于“ 10”的“ 2”? 我在latin1和utf8英语归类中都尝试过: 我知道它与类型有关,因为当它被强制转换时,它可以按预期工作: 这里到底发生了什么? 编辑: 以上所有操作都是在Fedora 13中使用8.4.8完成的。但是我只是在Centos 6中使用9.04进行了测试,结果相同: 数据库清单 新编辑: 这是为了进一步混淆: 问题答案: 我认为Postgre