convert Ganzzahl (long) in JSP zu verdoppeln
Frage
ich will auf jsp arithmetische Operation zu tun. Ich bin mit Streben Tag lib-Tag
finden Sie den Code:
<s:set name="value1" value ="%{0.0}" />
<s:set name="value2" value ="%{0.0}" />
<s:set name="percent" value ="%{0.0}" />
<s:iterator>
<s:set name="value1" value ="%{#value1+ someIntegerValue1}" />
<s:set name="value2" value ="%{#value2+ someIntegerValue2}" />
</s:iterator>
<s:set name="percent" value ="%{(#value1*100.0)/#value2}" />
<fmt:formatNumber type="number" maxFractionDigits="2" minFractionDigits="2" value="${percent}" />
jetzt die letzte Zeile immer Runden auf Integer-Wert
wie wenn value1 = 3, Wert2 = 31. dann sollten Prozent bis (3 * 100) / 31 = 9.68
gleichAber die verdammte Ding Ausgänge 9.00
<s:set name="percent" value ="%{(3*100.0)/31.0}" />
<fmt:formatNumber type="number" maxFractionDigits="2" minFractionDigits="2" value="${percent}" />
gibt es dann richtig 9.68: S
Kann mir jemand helfen bitte ?? Jetzt, als ich hart codieren diesen Ausdruck
Ich habe für eine lange Zeit auf diesem Kopf wurde hämmern, für mehr als 2-3 Stunden googeln didnt mir nichts erhalten.
Lösung
value2
sollte ein double
sein, um es an die Arbeit. 31
ist ein long
in EL und 31.0
ist ein double
in EL.
sagte, wird JSP mehr für die Präsentation intented, nicht für einige arithmetische Sachen. Mehr sauber (und weniger Headbanging) Art und Weise die Mathematik in einer Bohne und den Zugang zu nur zu tun, das Ergebnis des gewöhnlichen EL Weg sein würde.