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

gleich

Aber 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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top