2017-08-04 65 views
0

我是一個java新手,所以我需要你的幫助,我正在一個項目上工作! 我定義了一些櫃檯,這是我將要使用:Java分部使用BigDecimal

int[] acceptCounters = {}; 
int[] acceptFailCounters = {}; 

然後寫他們喜歡與數據庫獲取連接,並查看結果:

acceptCounters = guiops.getOfferStatitics(conn, "WS_GET_OFFER_ACCEPT"); 
acceptFailCounters = guiops.getOfferStatitics(conn, "WS_GET_OFFER_ACCEPT_PURCHASE_FAILED");* 

我得到的結果一樣, (我刪除了HTML部分):

 *__html parts__* 

     <% 
      for (int i = 0; i < acceptCounters.length; i++) { 
     %> 

HTML部分

 <%=formatter.format((new BigDecimal(acceptCounters[i] + acceptFailCounters[i])).longValue())%> 

     <% 
      } 
     %> 

這些都行。我想找到的是成功率,這是acceptCounters /(acceptCounters + acceptFailCounters)並看到2個十進制數字。爲了讓他們在相同的格式,我寫了Java代碼是這樣的:

HTML部分

 <% 
      for (int i = 0; i < acceptCounters.length; i++) { 
     %> 

HTML部分

 <%=formatter.format((new BigDecimal(acceptCounters[i] /(acceptCounters[i] + acceptFailCounters[i]))).longValue())%> 

     <% 
      } 
     %> 

但我看到的結果是0.它應該接近0.75或者......。你能幫我找到成功率嗎?我希望這是很清楚的。

+1

爲什麼你使用'BigDecimal'呢?並閱讀有關整數除法(結果也將是整數)。 – Henry

+0

使用JSTL和格式https://www.tutorialspoint.com/jsp/jstl_format_formatnumber_tag.htm - 不應該有你的Java jsp –

回答

1

BigDecimal有自己的除法方法。你可以使用這樣的:

formatter.format((new BigDecimal(acceptCounters[i]).divide(new BigDecimal(acceptCounters[i]),3)).add(new BigDecimal(acceptFailCounters[i])); 

BigDecimal java.math.BigDecimal.divide(BigDecimal divisor, int roundingMode)

Returns a BigDecimal whose value is (this/divisor), and whose scale is this.scale(). If rounding must be performed to generate a result with the given scale, the specified rounding mode is applied.

+0

@Cheatan chadha我有2個問題:你爲什麼寫,3?並且這裏的操作順序是否有效?我的意思是第一次失敗和接受的總和,然後是除法:接受/(接受+失敗)。謝謝。 – frusciante

+0

我在這裏使用了三舍入模式,因爲我希望除法結果多達3位小數,您可以根據您的要求對其進行修改。操作順序確實記得簡單的BODMAS規則。 –

+0

你能澄清一下這條語句:** BigDecimal java.math.BigDecimal.divide(BigDecimal divisor,int roundingMode)**因爲我得到錯誤。我導入了lib: <%@ page import =「java.math.BigDecimal」%>,所以我寫了如下的粗體部分:BigDecimal.divide(BigDecimal divisor,int roundingMode)。但我得到錯誤,它說刪除除數並刪除int;但ofc它會給我錯誤時再次刪除它們,因爲roundingMode無法解析爲變量。正如我所說我是完全新手,所以我需要幫助和澄清。謝謝:) – frusciante