Při používání databáze Oracle můžete použít funkce jako TO_CHAR(number) vrátit čísla jako řetězec. To vám umožní naformátovat číslo tak, aby mělo konkrétní počet desetinných míst – včetně žádných desetinných míst, pokud si to přejete.
Můžete také použít funkce jako ROUND(number) a TRUNC(number) k zaokrouhlení nebo zkrácení čísla na žádná desetinná místa.
K dispozici je také CAST() funkce, která vám umožňuje přetypovat datový typ jako celé číslo, čímž efektivně odstraníte všechna desetinná místa.
TO_CHAR() Funkce
Zde je příklad, který používá TO_CHAR(number) funkce:
SELECT TO_CHAR(1234.56, 'fm99G999')
FROM DUAL; Výsledek:
1,235
V tomto případě se můj formátový model skládá z:
- jeden
fm, což je modifikátor formátu, který odstraňuje všechny úvodní a/nebo koncové výplňové znaky, které by mohly být přidány do výsledku. - více
9znaky, které představují každou číslici - jeden
Gznak, který představuje oddělovač skupin s ohledem na národní prostředí
Důležité je poznamenat, že nepoužívá D formátovací prvek, což je desetinný znak s vědomím formátu. Nepoužívá ani žádné doslovné desetinné znaky (jako je čárka nebo tečka). A protože nemá žádné desetinné znaky, za takovým znakem samozřejmě nenásledují žádné číslice.
Pokud udělali mít desetinný znak, libovolný 9 nebo 0 prvky napravo od něj mohou mít za následek zahrnutí desetinných míst do výsledku.
Příklad:
SELECT TO_CHAR(7, 'fm99D00')
FROM DUAL; Výsledek:
7.00
Pro potlačení koncových nul můžeme změnit 0 znaků na 9 s. Nicméně odstranění fm Modifikátor může mít za následek zobrazení koncových nul i při použití 9 prvek formátu.
Zde je srovnání pro ilustraci toho, co tím myslím:
SELECT
TO_CHAR(7, 'fm99D00') AS "r1",
TO_CHAR(7, 'fm99D99') AS "r2",
TO_CHAR(7, '99D99') AS "r3"
FROM DUAL; Výsledek:
r1 r2 r3 _______ _____ _________ 7.00 7. 7.00
ROUND() Funkce
Zde je příklad, který používá ROUND(number) funkce:
SELECT ROUND(1234.56, 0)
FROM DUAL; Výsledek:
1235
ROUND() funkce zaokrouhlí číslo na dané desetinné místo. Zde jsme zadali nula desetinných míst, čímž se z čísla odstraní všechna desetinná místa.
V tomto případě bylo číslo zaokrouhleno nahoru.
Příkaz TRUNC() Funkce
Zde je příklad, který používá TRUNC(number) funkce:
SELECT TRUNC(1234.56, 0)
FROM DUAL; Výsledek:
1234
TRUNC() funkce zkrátí číslo na dané desetinné místo. Nedochází k žádnému zaokrouhlování. Proto bylo toto číslo zkráceno na nula desetinných míst, bez zaokrouhlování.
Položka CAST() Funkce
Zde je příklad, který používá CAST() funkce:
SELECT CAST(1234.56 AS INT)
FROM DUAL; Výsledek:
1235
CAST() funkce převede svůj argument na jiný datový typ. V tomto případě jsme převedli číslo na celé číslo. Celá čísla nemají žádná desetinná místa, a proto jsou z výsledku odstraněny všechny zlomkové části (včetně desetinného znaku). Všimněte si, že výsledek byl zaokrouhlen nahoru.