我有这个争论,6÷2(1 + 2)的答案是9还是1。
public class bodmas
{
public static void main(String [] args)
{
float i = 6/2*(1+2);
System.out.println(i);
}
}
Java返回9 ,但那是因为我无法删除*符号。如果我将它放入我的卡西欧fx-82MS计算器中,如果我插入 6/2 *(1 + 2),则返回9,如果我插入 6/2(1 + 2)<1则返回1 /强>
这让我担心Java开发人员,因为如果答案真的不同,我们就会遇到问题。我已经在不同版本的计算器上尝试了它,答案给出了9,但是我的它给出了1.所以可能没有什么可担心的。
作为结论,问题含糊不清,在编程术语中它会返回9.如果必须返回1,则更明确的问题是6 /(2 *(1 + 2) )。
答案 0 :(得分:9)
根据Order of Operations,答案应为9。
答案 1 :(得分:4)
这取决于您如何定义表示。在Java中(事实上,在大多数语言中):
6 / 2 * (1+2)
相当于
(6 / 2) * (1+2)
是9。
您的计算器将其解释为:
6 / (2 * (1+2))
确实是1。
答案 2 :(得分:0)
第 9 个答案不仅是错误的,而且是超级错误的。 在数学中,结合和交换属性是应用于加法和乘法的规律,这些规律始终存在...... 意义: 6÷2(2+1) 必须等于 6÷(2+1)2..... 如果我们考虑回答 9 的人使用的约定: 6÷2(2+1) = 9 6÷(2+1)2 = 4 这是错误的,因为乘法是可交换的,约定不应该破坏...... 如果我们考虑回答 1 的人使用的约定: 6÷2(2+1) = 1 6÷(2+1)2 = 1 这是一致且正确的......这就是为什么答案是 1.. 它不是关于约定的,而是关于基本抽象代数的……您对表达式的解释是错误的,因为您没有保留代数定律。 所以 9 不仅是错误的,而且是超级错误的。
答案 3 :(得分:-1)