sql >> Databáze >  >> RDS >> Oracle

3 způsoby formátování čísla na 2 desetinná místa v Oracle

Při používání databáze Oracle můžete použít funkce jako TO_CHAR(number) chcete-li vrátit čísla jako řetězec, formátovaný na dvě desetinná místa (nebo na libovolný počet desetinných míst, který požadujete).

Nebo můžete použít funkce jako ROUND(number) a TRUNC(number) k zaokrouhlení nebo zkrácení čísla na požadovaný počet desetinných míst.

TO_CHAR() Funkce

Zde je příklad, který používá TO_CHAR(number) funkce:

SELECT TO_CHAR(1.2345, 'fm99D00')
FROM DUAL;

Výsledek:

1.23

V tomto případě má původní číslo více než dvě desetinná místa, a tak jej výsledek jednoduše zkrátí na zadaný počet nul, které následují za desetinným/radixovým znakem (D ) ve formátu modelu.

Důvod, proč jsem za desetinným znakem použil nuly, je poskytnout koncové nuly, pokud je to požadováno.

Příklad:

SELECT TO_CHAR(7, 'fm99D00')
FROM DUAL;

Výsledek:

7.00

Pokud nechci koncové nuly, mohu změnit 0 znaků na 9 s.

Zde je srovnání těchto dvou:

SELECT 
    TO_CHAR(7, 'fm99D00') AS "r1",
    TO_CHAR(7, 'fm99D99') AS "r2"
FROM DUAL;

Výsledek:

     r1    r2 
_______ _____ 
7.00    7.   

Pomocí 9 s v tomto případě vyústil v znak radix, ale bez desetinných míst.

Měl bych zdůraznit, že fm je modifikátor formátu, který odstraňuje veškeré výplně, které lze na výsledek použít. Můžete to vynechat, pokud vám nevadí, že výsledek je vycpaný. Pokud to však uděláte, můžete skončit s koncovými nulami, i když použijete 9 prvek formátu.

Zde je to, co se stane, když odstraním fm z předchozího příkladu:

SELECT 
    TO_CHAR(7, '99D00') AS "r1",
    TO_CHAR(7, '99D99') AS "r2"
FROM DUAL;

Výsledek:

       r1        r2 
_________ _________ 
  7.00      7.00   

Samozřejmě nejste omezeni pouze na dvě desetinná místa – v případě potřeby můžete ve svém formátu formátu zadat více desetinných míst.

Příklad:

SELECT TO_CHAR(7, 'fm99D0000')
FROM DUAL;

Výsledek:

7.0000

ROUND() Funkce

Zde je příklad, který používá ROUND(number) funkce:

SELECT ROUND(1.2573, 2)
FROM DUAL;

Výsledek:

1.26

Tje ROUND() funkce zaokrouhlí číslo na dané desetinné místo. Zde jsme zadali dvě desetinná místa, ale mohli jsme zadat libovolné číslo.

V tomto případě bylo číslo zaokrouhleno nahoru.

Příkaz TRUNC() Funkce

Zde je příklad, který používá TRUNC(number) funkce:

SELECT TRUNC(1.2573, 2)
FROM DUAL;

Výsledek:

1.25

TRUNC() funkce zkrátí číslo na dané desetinné místo. Nedochází k zaokrouhlování.


  1. Vkládání dat kurzoru do pole

  2. Jak získat velikost databáze mysql?

  3. Budoucnost zásobníku aplikací

  4. jak používat položky tns s ovladači makromédií pro Oracle