# Per JSTL aus 0,45 --> 45 machen



## TSH (11. Okt 2008)

Hört sich einfach an, aber ich krieg's nicht hin. Ich habe eine Variable myValue, die irgendwo zwischen 0 und 1 liegt. Ich bräuchte den Wert nun als Ganzzahl zwischen 0 und 100, weil ich damit eine CSS width steuern möchte.

Ich hab Dinge probiert wie das hier:

```
<%-- Zuerst mal auf 2 Nachkommastellen runden --%>
<c:set var="WIDTH"><fmt:formatNumber value="${myvalue}" maxFractionDigits="2"/></c:set>

<%--Dann multiplizieren --%>
<div class="stars" style="width: <c:out value="${WIDTH * 100}"/>px;">TEXT</div>
```

Leider krieg ich dann solche Dinge um die Ohren gehauen:


```
java.lang.NumberFormatException: For input string: "0,72"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
	at java.lang.Long.parseLong(Long.java:412)
	at java.lang.Long.<init>(Long.java:671)
	at org.apache.el.lang.ELArithmetic$LongDelegate.coerce(ELArithmetic.java:188)
	at org.apache.el.lang.ELArithmetic.coerce(ELArithmetic.java:356)
	at org.apache.el.lang.ELArithmetic.multiply(ELArithmetic.java:319)
	at org.apache.el.parser.AstMult.getValue(AstMult.java:24)
```
Hat jemand einen Tipp für mich?


----------



## gex (11. Okt 2008)

Hi

Das Problem scheint deine myvalue variabel zu sein.

Dein Stacktrace sagt:

```
java.lang.NumberFormatException: For input string: "0,72"
```

Aber es müsste 0.72 sein, mit Punkt, nicht mit Komma.

Bsp:

```
<c:set var="myvalue" value="0.1235"></c:set>
```

Das runden kannst du dir auch einfacher machen, entweder so:

```
<div class="stars" style="width: <fmt:formatNumber value="${myvalue * 100}" maxFractionDigits="0"/>px;">TEXT</div>
```

oder so:

```
<div class="stars" style="width: <fmt:formatNumber value="${myvalue * 100}" pattern="###"/>px;">TEXT</div>
```


----------



## TSH (14. Okt 2008)

Ah, vielen Dank!


----------

