Oracle
 sql >> Baza danych >  >> RDS >> Oracle

3 sposoby formatowania liczby na 2 miejsca dziesiętne w Oracle

Korzystając z bazy danych Oracle, możesz używać funkcji takich jak TO_CHAR(number) zwracać liczby jako ciąg znaków, sformatowane do dwóch miejsc po przecinku (lub do dowolnej liczby miejsc po przecinku).

Możesz też użyć funkcji takich jak ROUND(number) i TRUNC(number) zaokrąglić lub skrócić liczbę do wymaganej liczby miejsc dziesiętnych.

TO_CHAR() Funkcja

Oto przykład, który używa TO_CHAR(number) funkcja:

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

Wynik:

1.23

W tym przypadku oryginalna liczba ma więcej niż dwa miejsca po przecinku, więc wynik po prostu obcina ją do określonej liczby zer, które następują po znaku dziesiętnym/podstawnym (D ) w modelu formatu.

Powodem, dla którego użyłem zer po znaku dziesiętnym, jest zapewnienie końcowych zer, jeśli jest to wymagane.

Przykład:

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

Wynik:

7.00

Jeśli nie chcę końcowych zer, mogę zmienić 0 znaków do 9 s.

Oto porównanie tych dwóch:

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

Wynik:

     r1    r2 
_______ _____ 
7.00    7.   

Korzystanie z 9 s w tym przypadku skutkowało znakiem podstawy, ale bez miejsc dziesiętnych.

Powinienem zaznaczyć, że fm to modyfikator formatu, który usuwa wszelkie dopełnienie, które można zastosować do wyniku. Możesz to pominąć, jeśli nie masz nic przeciwko dopełnieniu wyniku. Chociaż, jeśli to zrobisz, możesz skończyć z końcowymi zerami, nawet przy użyciu 9 element formatu.

Oto, co się stanie, gdy usunę fm z poprzedniego przykładu:

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

Wynik:

       r1        r2 
_________ _________ 
  7.00      7.00   

Oczywiście nie jesteś ograniczony tylko do dwóch miejsc po przecinku – w razie potrzeby możesz określić więcej miejsc po przecinku w swoim modelu formatu.

Przykład:

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

Wynik:

7.0000

ROUND() Funkcja

Oto przykład, który używa ROUND(number) funkcja:

SELECT ROUND(1.2573, 2)
FROM DUAL;

Wynik:

1.26

Ton ROUND() funkcja zaokrągla liczbę do podanego miejsca dziesiętnego. Tutaj podaliśmy dwa miejsca po przecinku, ale mogliśmy podać dowolną liczbę.

W tym przypadku liczba została zaokrąglona w górę.

TRUNC() Funkcja

Oto przykład, który używa TRUNC(number) funkcja:

SELECT TRUNC(1.2573, 2)
FROM DUAL;

Wynik:

1.25

TRUNC() funkcja obcina liczbę do podanego miejsca dziesiętnego. Nie występuje zaokrąglanie.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sqlplus jak znaleźć szczegóły aktualnie połączonej sesji bazy danych

  2. Kiedy lub dlaczego używać opcji SET DEFINE OFF w bazie danych Oracle

  3. Jaka jest dokładnie różnica między indeksem pierwotnym a indeksem wtórnym?

  4. Jak używać kursora referencji Oracle z języka C# ODP.NET jako parametru ReturnValue bez użycia funkcji lub procedury przechowywanej?

  5. Jak spakować cx_oracle z Pyinstallerem?