Wenn Sie Oracle Database verwenden, können Sie Funktionen wie TO_CHAR(number)
verwenden um Zahlen als String zurückzugeben, formatiert auf zwei Dezimalstellen (oder wie viele Dezimalstellen Sie benötigen).
Oder Sie können Funktionen wie ROUND(number)
verwenden und TRUNC(number)
um die Zahl auf die erforderliche Anzahl von Dezimalstellen zu runden oder zu kürzen.
Der TO_CHAR()
Funktion
Hier ist ein Beispiel, das den TO_CHAR(number)
verwendet Funktion:
SELECT TO_CHAR(1.2345, 'fm99D00')
FROM DUAL;
Ergebnis:
1.23
In diesem Fall hat die ursprüngliche Zahl mehr als zwei Dezimalstellen, und daher wird sie im Ergebnis einfach auf die angegebene Anzahl von Nullen gekürzt, die auf das Dezimal-/Basiszeichen folgen (D
) im Formatmodell.
Der Grund, warum ich Nullen nach dem Dezimalzeichen verwendet habe, ist, um bei Bedarf nachgestellte Nullen bereitzustellen.
Beispiel:
SELECT TO_CHAR(7, 'fm99D00')
FROM DUAL;
Ergebnis:
7.00
Wenn ich die abschließenden Nullen nicht möchte, kann ich die 0
ändern Zeichen zu 9
s.
Hier ist ein Vergleich der beiden:
SELECT
TO_CHAR(7, 'fm99D00') AS "r1",
TO_CHAR(7, 'fm99D99') AS "r2"
FROM DUAL;
Ergebnis:
r1 r2 _______ _____ 7.00 7.
Mit 9
s ergab in diesem Fall ein Radix-Zeichen, aber keine Dezimalstellen.
Ich sollte darauf hinweisen, dass fm
ist ein Formatmodifikator, der jegliche Auffüllung entfernt, die möglicherweise auf das Ergebnis angewendet wird. Sie können dies weglassen, wenn es Ihnen nichts ausmacht, dass das Ergebnis aufgefüllt wird. Wenn Sie dies tun, könnten Sie jedoch mit nachgestellten Nullen enden, selbst wenn Sie die 9
verwenden format-Element.
Folgendes passiert, wenn ich fm
entferne aus dem vorherigen Beispiel:
SELECT
TO_CHAR(7, '99D00') AS "r1",
TO_CHAR(7, '99D99') AS "r2"
FROM DUAL;
Ergebnis:
r1 r2 _________ _________ 7.00 7.00
Natürlich sind Sie nicht nur auf zwei Dezimalstellen beschränkt – Sie können bei Bedarf mehr Dezimalstellen in Ihrem Formatmodell angeben.
Beispiel:
SELECT TO_CHAR(7, 'fm99D0000')
FROM DUAL;
Ergebnis:
7.0000
Das ROUND()
Funktion
Hier ist ein Beispiel, das den ROUND(number)
verwendet Funktion:
SELECT ROUND(1.2573, 2)
FROM DUAL;
Ergebnis:
1.26
Tder ROUND()
Funktion rundet eine Zahl auf eine gegebene Dezimalstelle. Hier haben wir zwei Dezimalstellen angegeben, aber wir hätten jede beliebige Zahl angeben können.
In diesem Fall wurde die Zahl aufgerundet.
Der TRUNC()
Funktion
Hier ist ein Beispiel, das den TRUNC(number)
verwendet Funktion:
SELECT TRUNC(1.2573, 2)
FROM DUAL;
Ergebnis:
1.25
Der TRUNC()
Funktion kürzt eine Zahl auf eine bestimmte Dezimalstelle. Es erfolgt keine Rundung.