2011-04-30 113 views
-1

我有這樣的辯論,6÷2(1 + 2)的答案是9或1答案是:6÷2(1 + 2)=?

public class bodmas 
{ 
public static void main(String [] args) 
{ 
    float i = 6/2*(1+2); 
    System.out.println(i); 
} 

} 

的Java返回9,但那是因爲我不能刪除*符號。如果我把這個在我的卡西歐FX-82MS計算器返回9,如果我插入6/2 *(1 + 2),但1,如果我插入6/2(1 + 2)

這讓我擔心作爲一名Java開發人員,因爲如果答案真的不同,我們有一個問題。我已經嘗試過不同版本的計算器,答案給出了9,然而在我的計算器中它給出了1。所以可能沒有什麼可擔心的。

作爲結論,這個問題是不明確的,在編程方面它將返回9.如果必須返回1,則更清晰的問題將是6 /(2 *(1 + 2))。

+11

不要告訴我你在問這個Facebook問題... ** facepalm *** – Mehrdad 2011-04-30 19:03:00

+2

我要去1,但我有一個經濟學所以我應該被認爲是不可靠的來源。 – DaveH 2011-04-30 19:03:24

+1

[Google說9](http://www.google.ca/search?q=6%2F2%281%2B2%29) – 2011-04-30 19:04:02

回答

4

這取決於你如何定義你的表現。在Java(事實上,在大多數語言):

6/2 * (1+2) 

相當於

(6/2) * (1+2) 

這是9

你的計算器將其解釋爲:

6/(2 * (1+2)) 

這確實是1.

+0

6/2 = 3.1 + 2 = 3.這就是9來自哪裏。 – jwismar 2011-04-30 19:05:59

+1

@jwismar:的確如此!我有一個金髮的時刻...... – 2011-04-30 19:07:03

+0

@Oli正是這樣,這讓我很擔心,因爲作爲程序員,你不能在Java中使用6/2(1 + 2),但是你必須使用6/2 *(1+ 2)給出不同的答案 – 2011-04-30 19:07:54

8

根據Order of Operations答案應該是9

+0

這個例子在那裏提到! – abcd 2011-04-30 20:07:40

+0

首先對括號進行評估,然後如果一個表達式包含多個具有相同優先級(乘法,除法)的運算符,則運算符在數學和許多編程語言中都按照從左到右的順序執行。 6/2 * 3 – apprich 2011-04-30 20:10:33

0

omg guys。 問問自己:什麼是 a÷a =?它是一個。 現在想想內存法:a = 1a = 1(a) 現在問什麼是 a÷1a =?顯然1! a÷1a!= a÷1 * a 什麼是÷2a? Ans:1/2 什麼是6÷2a?答案:3/a 讓a = 1 + 2在上述全部中。 停止轉換像2a = 2 * a這樣的東西。它是2a =(2 * a)

相關問題