2017-08-04 6 views
0

私はJavaの初心者ですので、私が取り組んでいるプロジェクトにあなたの助けが必要です! 私はこれらは私が何を使用しますが、いくつかのカウンタを定義した:BigDecimalを使用したJavaディビジョン

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())%> 

     <% 
      } 
     %> 

これらはOKです。私が見つけたいのは成功率です。これはacceptCounters /(acceptCounters + acceptFailCounters)で、2桁の10進数を表示します。

のhtml部分

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

のhtml部分

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

     <% 
      } 
     %> 

しかし、私が見るすべて:同じ形式でそれらを保つために、私はこのようなJavaコードを書きました結果は0です。これは0.75またはsthに近いはずです。成功率を見つけるのを助けてくれますか?私はそれが十分明確であることを望む。

+1

:あなたはこのように使用することができますか?そして、整数除算についても読んでください(結果も整数になります)。 – Henry

+0

JSTLを使用してhttps://www.tutorialspoint.com/jsp/jstl_format_formatnumber_tag.htmをフォーマットしてください.jspにjavaはありません –

答えて

1

BigDecimalには独自の除算方法があります。あなたがすべてで `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桁までの除算結果を必要に応じて変更できるようにするため、丸めモードに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を削除すると言う;しかし、それは、私がそれらを削除すると再びエラーを返すので、roundingModeは変数に解決できません。私が言ったように私は完全に初心者ですので、助けと説明が必要です。ありがとうございました:) – frusciante

関連する問題