Wie kontrolliert man die Anzahl der Ziffern in JSP?

7

Ich möchte eine Frage zu JSP und Java stellen. Ich schreibe die JSP-Seite und hat eine Bean-Klasse. In der Klasse habe ich eine Getter-Funktion, die eine doppelte Var in der Jsp-Seite zurückgibt. Ich habe den folgenden Code verwendet, um die Nummer anzuzeigen.

%Vor%

Ich erwarte, dass die Anzeige die folgende sieht

%Vor%

Die tatsächliche Anzeige ist jedoch die folgende

%Vor%

Ich möchte nur die letzten beiden Ziffern anzeigen. Was soll ich tun, um anzuzeigen, was ich will? Soll ich die JSP-Seite oder die Java-Klassenvariable ändern? Danke.

    
Questions 11.10.2010, 08:10
quelle

3 Antworten

6

Sie können DecimalFormat verwenden, um den Wert als Zeichenfolge zu formatieren, z. B .:

%Vor%

(das Muster nimmt an, dass Sie immer zwei Ziffern im Bruchteil haben wollen, selbst wenn der Bruchteil Null ist. Andernfalls verwenden Sie #0.## )

Im Allgemeinen wird jedoch empfohlen, die Konstruktoren DecimalFormat nicht direkt aufzurufen. Stattdessen wird empfohlen, eine der Factory-Methoden von NumberFormat aufzurufen und das Muster dann wie erforderlich anzupassen, z. B .:

%Vor%

Javadoc einschließlich Beispiele:

Dies sollte in Ihrer JSP-Seite funktionieren:

%Vor%

Siehe auch Bozho's Antwort für eine Möglichkeit, dasselbe Ergebnis mit JSTL zu erreichen.

    
Grodriguez 11.10.2010, 08:14
quelle
12

In JSP können Sie dies mit dem JSTL-Tag tun <fmt:formatNumber> . Sie können entweder pettern ( #0.## ) oder maxFractionDigits="2"

festlegen

Vermeiden Sie die Verwendung von Java-Code in JSPs - verwenden Sie stattdessen JSTL. Siehe dieses Tutorial . Und siehe diese Frage

    
Bozho 11.10.2010 08:27
quelle
4

Um die letzte Frage zuerst zu beantworten, sollten Sie die JSP-Seite ändern, da Sie ändern möchten, wie die Zahl angezeigt wird und nicht wie die tatsächliche Nummer ist / p>

Um die standardmäßige toString-Methode der Zahl aufzurufen, können Sie dazu DecimalFormat -Objekt, um die Zahl in das gewünschte Format zu konvertieren. In diesem Fall möchten Sie wahrscheinlich Folgendes verwenden:

%Vor%

als Formatzeichenfolge.

Allerdings , laut Bozhos Antwort gibt es dafür einen JSTL-Tag, der eine bessere Lösung für Ihr Problem darstellt.

    
Andrzej Doyle 11.10.2010 08:13
quelle

Tags und Links