2015-06-02 81 views
2

有沒有人知道如何計算三角形的面積在傳統java中使用這個公式而不改變或在公式中添加任何東西?Java程序使用公式三角形Area = 1/2 * base * height as

面積= 1/2 * *基礎高度

如果我改變式等:

面積= 1.0F/2 *基喚起注意或1/2.0F基*高度或0.5 *基地*高度

...這肯定會給我什麼,我正在尋找。

但我想要做的是使用公式Area = 1/2 * base * height原樣。有人告訴我他們是一種方式,但我似乎無法遵循。 如果這是我的程序:

公共類區​​{

public static void main (String[] args) { 

     // If this is the given value 
     int base = 5; 
     int height = 5; 
     float Area = 0; 

     //Using this formula without altering or adding anything on it 
     Area = 1/2*base*height; 


     System.out.println("Area = " +Area); 
} 

}

這會給出:

面積= 0.0

*怎樣將獲得:

面積= 12.5

+0

請使用double作爲您的數據類型。 – Jayan

+0

'1'和'2'是整數,所以'1/2'使用具有整數「0」的回答的整數除法。如果你想剩下它將是'1%2',這將是'1'。 http://mathworld.wolfram.com/IntegerDivision.html –

回答

2

你的問題是與整數運算。具體來說,考慮1/2。因爲我們有int/int,所以結果必須是一個int(它可以被轉換爲double,float等)。但是,因爲分數不存在於int類型中,所以我們得到1/2 = 0。因此你有1/2*base*height = 0 * base * height = 0

嘗試0.5*base*height,或1.0/2.0*base*height,或者(float)1/(float)2 * base*height

特別要注意的是在(float)(1/2),劇組發生爲時已晚 - 你會得到0.0

+0

所以它被稱爲類型演員哈哈 非常感謝男人。您的大幫助! –

0

使用雙。 intint數學家操作,S結果總是詮釋在Java

 double base = 5; 
    double height = 5; 
    double Area = 0; 

    Area = 1.0/2*base*height;