Startseite / Vorlagenentwicklung / Vorlagensyntax / Datentypen / Number

Datentyp Number

Wertebereich des Datentyps Number

Der Datentyp Number repräsentiert Zahlen. Darunter fallen sowohl Ganz- als auch Gleitkommazahlen, z. B. java.math.BigInteger, java.lang.Long usw. Mithilfe von Zahlen ist es in FirstSpirit 4.0 möglich, eine Vielzahl von arithmetischen Ausdrücken zu formulieren, z. B.

  • Addition
  • Subtraktion
  • Multiplikation
  • Division
  • Division mit Rest (Modulo)

Weiterführende Informationen zu diesem Thema siehe arithmetische Ausdrücke.

Weiterführende Informationen zum Datentyp Number siehe Sun API-Dokumentation: java.lang.Number

Definition über die Standard-Eingabekomponenten

Im Formularbereich einer Seiten- oder Absatzvorlage können unterschiedliche Eingabekomponenten definiert werden. Über diese Formularelemente können dann die eigentlichen redaktionellen Inhalte in die Seite einfügen werden. Die von FirstSpirit unterstützten Standard-Eingabekomponenten liefern unterschiedliche Datentypen zurück.

Die folgenden Standard-Eingabekomponenten liefern ein Objekt vom Datentyp Number zurück:

Auf diesem Objekt lassen sich dann mithilfe einer $CMS_VALUE(...)$-Anweisung Methoden anwenden:

$CMS_VALUE(BEZEICHNER.METHODE)$

Unter BEZEICHNER muss der Parameter resultname, der in der Eingabekomponente definiert wurde, angegeben werden.

Methoden auf Number-Objekten

In der unten angegebenen Tabelle werden alle Methoden aufgelistet, die auf Objekten vom Datentyp Number aufgerufen werden können:

Objekt wird von folgenden Formular-Objekten erzeugt:
CMS_INPUT_NUMBER
Methodenname Rückgabetyp Kurzbeschreibung Verfügbar seit
byteValue byte
compareTo(Number) int
compareTo(Object) int
div(BigInteger) BigDecimal
div(BigDecimal) BigDecimal
div(Number) BigDecimal
doubleValue double
equals(BigDecimal) boolean
equals(Number) boolean
equals(Object) boolean
floatValue float
format(String) String Formatierung von Zahlen
getClass Class Klasse des aufrufenden Objektes
humanReadable(String) String Ausgabe von Dateigrößen (Ganzzahl)
humanReadable(String, String) String Formatierung von Dateigrößen
intValue int
isCase(BigDecimal) boolean
isCase(Number) boolean
isCase(Object) boolean
isNull boolean Prüft, ob ein Ausdruck Null ist
longValue long
minus(BigInteger) BigDecimal
minus(BigDecimal) BigDecimal
minus(Double) BigDecimal
minus(Number) BigDecimal
modulo(BigInteger) BigInteger
modulo(Short) long
modulo(Long) long
modulo(Integer) long
modulo(Byte) long
mult(BigInteger) BigDecimal
mult(BigDecimal) BigDecimal
mult(Number) BigDecimal
plus(BigInteger) BigDecimal
plus(BigDecimal) BigDecimal
plus(Number) BigDecimal
plus(Object) String
print void
set(String, Object) Object
shortValue short
toJSON String Convert to a JSON-compatible string representation including necessary quotes and escaping for immediate use. Handles Maps, Collections, Arrays, Numbers, Strings, Boolean, Date, and JsonElement. A date instance will be converted to an ISO-8601 formatted date string. Any object other than above will be converted using its 'toString()' value. 5.2.11
toNumber Number
toString String
type String

byteValue

Methodenname Rückgabetyp Verfügbar seit
byteValue byte

compareTo(Number)

Methodenname Rückgabetyp Verfügbar seit
compareTo(Number) int

compareTo(Object)

Methodenname Rückgabetyp Verfügbar seit
compareTo(Object) int

div(BigInteger)

Methodenname Rückgabetyp Verfügbar seit
div(BigInteger) BigDecimal

div(BigDecimal)

Methodenname Rückgabetyp Verfügbar seit
div(BigDecimal) BigDecimal

div(Number)

Methodenname Rückgabetyp Verfügbar seit
div(Number) BigDecimal

doubleValue

Methodenname Rückgabetyp Verfügbar seit
doubleValue double

equals(BigDecimal)

Methodenname Rückgabetyp Verfügbar seit
equals(BigDecimal) boolean

equals(Number)

Methodenname Rückgabetyp Verfügbar seit
equals(Number) boolean

equals(Object)

Methodenname Rückgabetyp Verfügbar seit
equals(Object) boolean

floatValue

Methodenname Rückgabetyp Verfügbar seit
floatValue float

format(String)

Mithilfe der Methode format(String) können Zahlen formatiert ausgegeben werden.

Dazu werden Formatierungsanweisungen (pattern) verwendet, die auch für die Anzeige von Zahlen in der Eingabekomponente CMS_INPUT_NUMBER verwendet werden (Parameter format).

Zusätzlich zu den Möglichkeiten, Zahlen in der Eingabekomponente CMS_INPUT_NUMBER zu formatieren, können Zahlen über die Methode format(String) darüber hinaus auf folgende Weise ausgegeben werden:

1) Ausgabe von sprachspezifischen Währungseinheiten

Dazu wird das Symbol ¤ (Unicode: #00a4) verwendet.

Beispiel:

$CMS_VALUE(22.format("0 ¤").convert2)$

Da das Symbol ¤ nicht in allen Zeichensätzen vorhanden ist und es eventuell im Browser nicht richtig dargestellt wird, wird die Methode .convert2() (siehe dazu Datentyp String) verwendet. Die Ausgabe ist (abhängig von der gewählten Projektsprache) z.B. 22 € für Deutsch oder 22 £ für Englisch.

Für internationale Währungszeichen (z.B. EUR für Deutsch oder GBP für Englisch) wird das Symbol ¤ doppelt verwendet, also ¤¤ (Unicode: #00a4#00a4).

2) Ausgabe von Prozent- und Promillezeichen

Dazu werden die Symbole % bzw. verwendet. Die jeweilige Zahl wird bei Verwendung von % zunächst mit 100 multipliziert, bei Verwendung von mit 1000.

$CMS_VALUE(0.22.format("0 %"))$

bzw.

$CMS_VALUE(0.002.format("0 ‰").convert2)$

Die Ausgabe lautet entsprechend 22 % bzw. 2 ‰.

3) Ausgabe von individuellem Text

Individueller Text kann maskiert durch einfache Hochkommata ' ausgegeben werden:

$CMS_VALUE(123.format("0 'Yen'"))$

Ausgabe: 123 Yen

Soll ein einfaches Hochkomma ausgegeben werden, muss '' (zwei Hochkommata) angegeben werden.

4) Unterschiedlich formatierte Ausgaben für positive und negative Zahlen

Mithilfe von Semikolons ; können positive und negative Zahlen mit unterschiedlicher Formatierung angegeben werden. Der Teil vor dem Semikolon gibt dabei die Formatierungsregeln für positive, der nach dem Semikolon für negative Zahlen an. Das Pattern muss für die Zahl muss dabei für positive und negative Zahlen gleich sein. Die Formatierungsanweisung darf sich lediglich in Symbolen unterscheiden, die vor oder nach der durch eine oder mehrere Nullen (0) oder ein oder mehrere #-Symbole dargestellten Zahl, ansonsten wird für die Formatierungsanweisung vor dem Semikolon für positive und negative Zahlen verwendet.

Beispiel:

$CMS_SET(result, 2 - 4)$
1. Fall: $CMS_VALUE(result.format("#,##0.00;(#,##0.00)"))$ <br>
2. Fall: $CMS_VALUE(result.format("0.00;-0.00 ¤").convert2)$

In diesem Beispiel hat die Variable result den Wert "-2", die Ausgabe lautet daher im ersten Fall (2.00), im zweiten Fall -2,00 €. Hätte die Variable einen positiven Wert, z.B. "2", wäre die Ausgabe in beiden Fällen 2,00.

Wichtig Weitere Informationen siehe java.text.DecimalFormat.

Verwendung von ChoiceFormat

Über ChoiceFormat kann einer Menge von Zahlen ein bestimmtes Format zugewiesen werden. Auf diese Weise können z.B. Singular- und Pluralformen von Substantiven flexibel anhand der Anzahl ausgegeben werden.

Dazu kann z. B. mit $CMS_SET(...)$ eine Liste mit Key-Value-Paaren definiert werden, wobei der Key jeweils eine Zahl enthält, der Value den gewünschten Text. Key und Value werden mit "#" getrennt, die Key-Value-Paare werden mit "|" voneinander getrennt, z.B.

$CMS_SET(myVariable, "1.0#Sun|2.0#Mon|3.0#Tue|4.0#Wed|5.0#Thur|6.0#Fri|7.0#Sat")$

Diese Liste kann über $CMS_FOR(...)$ und $CMS_VALUE(...)$ ausgegeben werden, und zwar unter Verwendung von "choice=", z.B.:

$CMS_FOR(i, [1..7])$
$CMS_VALUE(i + " -> " + i.format("choice=" + myVariable))$ <br>
$CMS_END_FOR$

Die Ausgabe sieht folgendermaßen aus:

1 -> Sun 
2 -> Mon
3 -> Tue
4 -> Wed
5 -> Thur
6 -> Fri
7 -> Sat

Auch sprachabhängige Ausgaben können auf diese Art realisiert werden, z.B.:

Sprache DE: $CMS_VALUE(12.format("choice=1#Jan|2#Feb|3#Mrz|4#Apr|5#Mai|6#Jun|7#Jul|8#Aug|9#Sep|10#Okt|11#Nov|12#Dez"))$ <br>
Sprache EN: $CMS_VALUE(12.format("choice=1#Jan|2#Feb|3#Mar|4#Apr|5#May|6#Jun|7#Jul|8#Aug|9#Sep|10#Oct|11#Nov|12#Dec"))$

Ausgabe:

Sprache DE: Dez 
Sprache EN: Dec
Methodenname Rückgabetyp Verfügbar seit
format(String) String

getClass

Die Methode .getClass() (in Bean-Syntax: .class) liefert die Klasse des aufrufendes Objektes zurück (vgl. java.lang.Class).

Aufruf:

$CMS_VALUE(myString.class)$
$CMS_VALUE(myString.getClass())$

Ausgabe:

java.lang.String
Methodenname Rückgabetyp Verfügbar seit
getClass Class

humanReadable(String)

Über die Methode humanReadable(String) können Dateigrößen, z. B. von Medien, als Ganzzahl in einer bestimmten Einheit ausgegeben werden, um die Angabe besser lesbar zu machen. Die Verwendung ist nur in Verbindung mit der ref(...)-Funktion und der Methode .size sinnvoll.

Im Vergleich zur Methode humanReadable(String, String) (siehe unten) kann über humanReadable(String) nur die Einheit angegeben werden (also vergleichbar mit dem 1. String in der Methode humanReadable(String, String). Das Format (2. String der Methode humanReadable(String, String)) ist standardmäßig "0 {U}", wobei 0 der Platzhalter für die ganzzahlige Dateigröße und {U} der Platzhalter für die Einheit ist (Beispiel siehe unten).

Für die Definition der Einheit über humanReadable(String) kann zwischen Binär- (auf der Basis von Zweierpotenzen) und Dezimalbezeichnung (auf der Basis von Zehnerpotenzen) gewählt werden (vgl. dazu auch IEC-Norm 60027-2):

  • Binärbezeichnungen:
    • 1 Kibibyte (KiB) entspricht 210 Byte = 1024 Byte
    • 1 Mebibyte (KiB) entspricht 220 Byte = 1.048.576 Byte
    • 1 Gibibyte (GiB) entspricht 230 Byte = 1.073.741.824 Byte
    • ...
  • Dezimalbezeichnungen (SI-Präfixe):
    • 1 Kilobyte (kB) entspricht 103 Byte = 1.000 Byte
    • 1 Megabyte (MB) entspricht 106 Byte = 1.000.000 Byte
    • 1 Gigabyte (GB) entspricht 109 Byte = 1.000.000.000 Byte
    • ...

Für die Ausgabe der Dateigröße in Binärbezeichnung stehen folgende Werte für die verschiedenen Einheiten zur Verfügung:

KiB, MiB, GiB, TiB, PiB, EiB, ZiB und YiB

Darüber hinaus kann der Platzhalter ** verwendet werden, um die Dateigröße in der größtmöglichen Einheit auszugeben.

Für die Ausgabe der Dateigröße in Dezimalbezeichnung stehen folgende Werte für die verschiedenen Einheiten zur Verfügung:

kB, MB, GB, TB, PB, EB, ZB und YB

Darüber hinaus kann der Platzhalter * verwendet werden, um die Dateigröße in der größtmöglichen Einheit auszugeben.

Beispiel:

$CMS_VALUE(ref(media:"REFERENZNAME").size.humanReadable("*"))$

In diesem Beispiel wird die Dateigröße des Mediums mit dem Referenznamen REFERENZNAME in der größtmöglichen Einheit in Dezimalbezeichnung ausgegeben.

Ergänzt um das Standardformat lautet das Äquivalent als humanReadable(String, String) (siehe unten):

$CMS_VALUE(ref(media:"REFERENZNAME").size.humanReadable("*", "0 {U}"))$

Da über diese Methode nur Ganzzahlen ausgegeben werden können, werden Dezimalzahlen auf- oder abgerundet.
Die Größe einer Datei von 2572,31 kB wird z.B. bei Angabe folgender Einheiten wie folgt ausgegeben:

  • bei Angabe von kb: "2572 kB"
  • bei Angabe von MB: "3 MB"
  • bei Angabe von GB: "0 GB"
  • bei Angabe von *: "3 MB"

Wichtig Sollen Dateigrößen nicht gerundet ausgegeben werden, kann die Methode humanReadable(String, String) verwendet werden (siehe unten).
Methodenname Rückgabetyp Verfügbar seit
humanReadable(String) String

humanReadable(String, String)

Über die Methode humanReadable(String, String) können Dateigrößen, z.B. von Medien, formatiert ausgegeben werden, um die Angabe besser lesbar zu machen. Die Verwendung ist nur in Verbindung mit der ref(...)-Funktion und der Methode .size sinnvoll.

Neben einer gewünschten Einheit wird bei dieser Methode auch ein Format für die Dateigröße definiert, wobei zuerst die Einheit und dann das Format angegeben werden muss, durch ein Komma getrennt.

1. String – Einheit: Bei der Einheit kann zwischen der Ausgabe in Binär- (auf der Basis von Zweierpotenzen) oder Dezimalbezeichnung (auf der Basis von Zehnerpotenzen) gewählt werden. Es können dieselben Einheiten verwendet werden, wie für die Methode humanReadable(String) (siehe oben), inklusive der Platzhalter * und **. Anders als bei humanReadable(String) wird die Einheit nicht mit ausgegeben. Sie muss im zweiten String definiert werden:

2. String – Format: Für das Format können die für Zahlen bekannten Formatierungsanweisungen verwendet werden (s. Parameter format bei CMS_INPUT_NUMBER). Werden dabei weniger Nachkommastellen definiert, als die Dateigröße hat, wird auf die angegebene Nachkommastellenzahl auf- bzw. abgerundet.
Standardmäßig wird nur die Dateigröße ausgegeben. Die gewünschte Einheit muss zusätzlich zum Format angegeben werden. Theoretisch kann jeder Text verwendet werden und dabei je nach Anwendungsfall auch Einheiten in Binär- und Dezimalbezeichnung kombiniert werden.
Um die Einheit flexibel auszugeben, kann der Platzhalter {U} verwendet werden. Dieser wird durch die im ersten String angegebene Einheit ersetzt. Wird im ersten String * oder ** verwendet, sollte im zweiten String {U} gesetzt werden, um sicher zu gehen, dass automatisch die korrekte Einheit ausgegeben wird.

Beispiele:

1) Mit folgender Syntax wird die Größe des Mediums mit dem Referenznamen REFERENZNAME auf zwei Stellen nach dem Komma gerundet in MB ausgegeben:

$CMS_VALUE(ref(media:"REFERENZNAME").size.humanReadable("MB","0.00 MB"))$

oder

$CMS_VALUE(ref(media:"REFERENZNAME").size.humanReadable("MB","0.00 {U}"))$

2) Mit folgender Syntax wird die Größe des Mediums mit dem Referenznamen REFERENZNAME auf zwei Stellen nach dem Komma gerundet in der größtmöglichen Einheit ausgegeben:

$CMS_VALUE(ref(media:"REFERENZNAME").size.humanReadable("*",".00 {U}"))$

3) Mit folgender Syntax wird die Größe des Mediums mit dem Referenznamen REFERENZNAME in KiB aber mit der Einheit "kB" ausgegeben:

$CMS_VALUE(ref(media:"REFERENZNAME").size.humanReadable("KiB","0.0 kB"))$

Die Größe einer Datei von 2572,31 kB wird z.B. bei Angabe folgender String-Kombinationen wie folgt ausgegeben:

  • bei Angabe von ("kB","0 kB"): "2572 kB"
  • bei Angabe von ("kB",",000 kB"): "2.572 kB"
  • bei Angabe von ("*",".0000 {U}): "2,5723 MB"
  • bei Angabe von ("MB","0.0 MB"): "2,6 MB"
  • bei Angabe von ("MB","0.00 MB"): "2,57 MB"
  • bei Angabe von ("GB","0.0 GB"): "0,00 GB"
  • bei Angabe von ("GB","0.00 GB"): "0,003 GB"

Methodenname Rückgabetyp Verfügbar seit
humanReadable(String, String) String

intValue

Methodenname Rückgabetyp Verfügbar seit
intValue int

isCase(BigDecimal)

Methodenname Rückgabetyp Verfügbar seit
isCase(BigDecimal) boolean

isCase(Number)

Methodenname Rückgabetyp Verfügbar seit
isCase(Number) boolean

isCase(Object)

Methodenname Rückgabetyp Verfügbar seit
isCase(Object) boolean

isNull

Die Methode .isNull() (in Bean-Syntax: .isNull) prüft, ob ein Ausdruck bzw. Objekt Null ist, z. B. storeElement.isNull(). Bei Objekten mit komplexen Werten oder Objekten entscheidet das Objekt, wann es null ist. Der Datentyp DomElement enthält beispielsweise immer ein leeres Dokument, ist also nie null. Die Prüfung einer leeren DOM-Editor-Eingabekomponente mit der Methode .isNull() liefert daher den Wert false, während die Prüfung der Komponente auf .isEmpty() den Wert true liefern würde.

Die Methode .isNull() gibt einen booleschen Wert als Ergebnis der Prüfung zurück. true (=wahr) ist die Prüfung, wenn der Ausdruck bzw. das Objekt Null ist und false (=unwahr) wenn nicht.

Methodenname Rückgabetyp Verfügbar seit
isNull boolean

longValue

Methodenname Rückgabetyp Verfügbar seit
longValue long

minus(BigInteger)

Methodenname Rückgabetyp Verfügbar seit
minus(BigInteger) BigDecimal

minus(BigDecimal)

Methodenname Rückgabetyp Verfügbar seit
minus(BigDecimal) BigDecimal

minus(Double)

Methodenname Rückgabetyp Verfügbar seit
minus(Double) BigDecimal

minus(Number)

Methodenname Rückgabetyp Verfügbar seit
minus(Number) BigDecimal

modulo(BigInteger)

Methodenname Rückgabetyp Verfügbar seit
modulo(BigInteger) BigInteger

modulo(Short)

Methodenname Rückgabetyp Verfügbar seit
modulo(Short) long

modulo(Long)

Methodenname Rückgabetyp Verfügbar seit
modulo(Long) long

modulo(Integer)

Methodenname Rückgabetyp Verfügbar seit
modulo(Integer) long

modulo(Byte)

Methodenname Rückgabetyp Verfügbar seit
modulo(Byte) long

mult(BigInteger)

Methodenname Rückgabetyp Verfügbar seit
mult(BigInteger) BigDecimal

mult(BigDecimal)

Methodenname Rückgabetyp Verfügbar seit
mult(BigDecimal) BigDecimal

mult(Number)

Methodenname Rückgabetyp Verfügbar seit
mult(Number) BigDecimal

plus(BigInteger)

Methodenname Rückgabetyp Verfügbar seit
plus(BigInteger) BigDecimal

plus(BigDecimal)

Methodenname Rückgabetyp Verfügbar seit
plus(BigDecimal) BigDecimal

plus(Number)

Methodenname Rückgabetyp Verfügbar seit
plus(Number) BigDecimal

plus(Object)

Methodenname Rückgabetyp Verfügbar seit
plus(Object) String

print

Methodenname Rückgabetyp Verfügbar seit
print void

set(String, Object)

Methodenname Rückgabetyp Verfügbar seit
set(String, Object) Object

shortValue

Methodenname Rückgabetyp Verfügbar seit
shortValue short

toJSON

Convert to a JSON-compatible string representation including necessary quotes and escaping for immediate use. Handles Maps, Collections, Arrays, Numbers, Strings, Boolean, Date, and JsonElement. A date instance will be converted to an ISO-8601 formatted date string. Any object other than above will be converted using its 'toString()' value.
Methodenname Rückgabetyp Verfügbar seit
toJSON String 5.2.11

toNumber

Methodenname Rückgabetyp Verfügbar seit
toNumber Number

toString

Methodenname Rückgabetyp Verfügbar seit
toString String

type

Methodenname Rückgabetyp Verfügbar seit
type String

© 2005 - 2024 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2024.5 | Datenschutz