2009-12-31 7 views
1

je veux faire l'opération arithmétique sur jsp. J'utilise tag entretoises tag libconvertir nombre entier (long) à double en jsp

Voici le 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}" /> 

maintenant la dernière ligne arrondit toujours à une valeur entière

comme si valeur1 = 3, valeur2 = 31. alors pour cent devrait être égal à (3 * 100)/31 = 9,68

mais les sorties damn thing à 9,00

<s:set name="percent" value ="%{(3*100.0)/31.0}" /> 
<fmt:formatNumber type="number" maxFractionDigits="2" minFractionDigits="2" value="${percent}" /> 

alors il sort correctement 9,68: S

quelqu'un peut-il s'il vous plaît aider ?? Maintenant, quand je hardcode cette expression

Je me suis cogné la tête sur ce sujet depuis longtemps, googling pour plus de 2-3 heures ne m'a rien.

Répondre

2

value2 devrait être un double pour le faire fonctionner. 31 est un long en EL et 31.0 est un double en EL. Cela dit, JSP est plus destiné à la présentation, pas pour certaines choses arithmétiques. Une façon plus propre (et moins headbanging) serait de simplement faire le calcul dans un haricot et accéder au résultat de la façon habituelle EL.

+0

bien que someIntegerValue1 et someIntegerValue2 ont été ajoutés dans value1 et value2. et il y a "non" moyen (je me suis cogné la tête contre) pour lancer ou forcer l'expulsion de jsp pour donner une réponse de virgule flottante à partir d'une expression de jsp "non-flottante" points. A la fin, j'ai dû changer le bean et changer le type de someIntegerValue1 et someIntegerValue2 en Double. cela l'a résolu et la réponse est correcte. Merci pour la réponse BalusC – Ali