Literale sind konstante Werte, die als Grundlage für alle Werte dienen, die zur Verarbeitung an FormCalc übergeben werden. Es gibt zwei allgemeine Typen von Literalen: Zahlen und Zeichenfolgen.Ein Zahlenliteral ist eine hauptsächlich aus Ziffern bestehende Folge, die sich aus einem oder mehreren der folgenden Zeichen zusammensetzt: Ganzzahl, Dezimalpunkt, Bruchanteil, Exponentenzeichen („e“ oder „E“) sowie ein optionaler vorzeichenbehafteter Exponentenwert. Die folgenden Beispiele zeigen einige Literalzahlen:
•
•
•
•
• Entweder der Ganzzahl- oder der Bruchanteil einer Literalzahl kann weggelassen werden, aber nicht beide gleichzeitig. Außerdem kann im Bruchanteil entweder der Dezimalpunkt oder der Exponentenwert weggelassen werden, aber nicht beide gleichzeitig.Alle Zahlenliterale werden intern gemäß einem Standard des Institute of Electrical and Electronics Engineers (IEEE) in 64 Bit lange Binärwerte umgewandelt. Da die IEEE-Werte aber nur eine endliche Zahlenmenge darstellen können, lassen sich bestimmte Werte in dieser Form nicht als binärer Bruch darstellen, ähnlich wie sich bestimmte Werte (z. B. 1/3) als Dezimalbruch nicht exakt darstellen lassen (ein völlig genauer Dezimalwert müsste unendlich viele Dezimalstellen haben).Die Werte ohne äquivalente binäre Bruchdarstellung sind in der Regel Zahlenliterale mit mehr als 16 signifikanten Ziffern vor dem Exponenten. FormCalc rundet diese Werte auf den nächsten nach dem IEEE-Standard darstellbaren 64-Bit-Wert. Beispielsweise wird der WertDieses Verhalten kann in manchen Fällen zu unerwarteten Ergebnissen führen. FormCalc enthält die Funktion Round, welche die übergebene Zahl auf eine angegebene Zahl von Dezimalstellen gerundet zurückgibt. Wenn die übergebene Zahl genau in der Mitte zwischen zwei darstellbaren Zahlen liegt, wird „von 0 weg“ gerundet; das heißt, eine positive Zahl wird nach oben gerundet, eine negative nach unten. Dazu zwei Beispiele:liefert 0.12liefert 0.13.0.05 liefert.Die IEEE-Norm 754 schreibt aber vor, dass das Zahlenliteral 0.045 als 0.0449999999999999 anzunähern ist. Dieser Näherungswert liegt näher bei 0.04 als bei 0.05. Daher liefertdas Ergebnis 0.04.64-Bit-Werte gemäß der IEEE-Norm unterstützen auch Darstellungen wie NaN (Not a Number – keine Zahl), +Inf (positiv unendlich) und -Inf (negativ unendlich). In FormCalc werden diese Werte jedoch nicht unterstützt, und Ausdrücke, die zu NaN, +Inf oder -Inf ausgewertet werden, führen zu einem Ausnahmefehler, der dann auch auf den Rest des Ausdrucks übertragen wird.Ein Zeichenfolgenliteral ist eine in Anführungszeichen eingeschlossene Folge von beliebigen Unicode-Zeichen. Beispiel:Das Zeichenkettenliteral “” steht für eine leere Folge von Textzeichen, die als „leere Zeichenkette“ bezeichnet wird.Zum Einbetten eines Anführungszeichens (“) innerhalb eines Zeichenfolgenliterals müssen Sie zwei Anführungszeichen einfügen. Beispiel:Zu jedem Unicode-Zeichen gibt es eine äquivalente, 6 Zeichen lange Zeichenkette, die aus \u und vier nachfolgenden Hexadezimalziffern besteht. In einem Zeichenfolgenliteral lässt sich jedes Zeichen, einschließlich der Steuerzeichen, mit einer entsprechenden Unicode-Escape-Sequenz darstellen. Beispiel: