Ich bin ein Neuling auf Java, also brauche ich Ihre Hilfe für ein Projekt, an dem ich arbeite! I definiert einige Zähler, diese sind, was ich benutze:Java Division mit BigDecimal
int[] acceptCounters = {};
int[] acceptFailCounters = {};
Dann schrieb ich ihnen, wie die Verbindung mit Datenbank zu erhalten, und die Ergebnisse:
acceptCounters = guiops.getOfferStatitics(conn, "WS_GET_OFFER_ACCEPT");
acceptFailCounters = guiops.getOfferStatitics(conn, "WS_GET_OFFER_ACCEPT_PURCHASE_FAILED");*
ich die Ergebnisse wie das bekommen (ich löschte die HTML-Teile):
*__html parts__*
<%
for (int i = 0; i < acceptCounters.length; i++) {
%>
html Teile
<%=formatter.format((new BigDecimal(acceptCounters[i] + acceptFailCounters[i])).longValue())%>
<%
}
%>
Das sind OK. Was ich finden möchte, ist die Erfolgsquote, die acceptCounters/(acceptCounters + acceptFailCounters) ist und 2 Dezimalziffern zu sehen. Um sie im gleichen Format zu halten, schrieb ich die Java-Codes wie folgt aus:
html Teile
<%
for (int i = 0; i < acceptCounters.length; i++) {
%>
html Teile
<%=formatter.format((new BigDecimal(acceptCounters[i] /(acceptCounters[i] + acceptFailCounters[i]))).longValue())%>
<%
}
%>
Aber alles was ich sehe als Ergebnis ist 0. Es sollte nahe 0,75 oder etw sein. Kannst du mir helfen, Erfolgsquote zu finden? Ich hoffe es ist klar genug.
Warum verwenden Sie 'BigDecimal' überhaupt? Und lesen Sie über Integer-Division (das Ergebnis wird auch Integer sein). – Henry
Verwenden Sie JSTL und formatieren https://www.tutorialspoint.com/jsp/jstl_format_formatnumber_tag.htm - es sollte nicht Java in dir sein jsp –