Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

3 cách để định dạng một số thành 2 vị trí thập phân trong Oracle

Khi sử dụng Cơ sở dữ liệu Oracle, bạn có thể sử dụng các hàm như TO_CHAR(number) để trả về các số dưới dạng một chuỗi, được định dạng thành hai chữ số thập phân (hoặc nhiều chữ số thập phân mà bạn yêu cầu).

Hoặc bạn có thể sử dụng các hàm như ROUND(number)TRUNC(number) để làm tròn hoặc cắt bớt số đến số chữ số thập phân được yêu cầu của bạn.

TO_CHAR() Chức năng

Dưới đây là một ví dụ sử dụng TO_CHAR(number) chức năng:

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

Kết quả:

1.23

Trong trường hợp này, số ban đầu có nhiều hơn hai chữ số thập phân và do đó, kết quả chỉ cần cắt ngắn nó thành số số không được chỉ định theo sau ký tự thập phân / cơ số (D ) trong mô hình định dạng.

Lý do tôi sử dụng các số không sau ký tự thập phân là để cung cấp các số không ở cuối nếu được yêu cầu.

Ví dụ:

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

Kết quả:

7.00

Nếu tôi không muốn các số không ở cuối, tôi có thể thay đổi 0 ký tự thành 9 s.

Dưới đây là so sánh giữa hai loại:

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

Kết quả:

     r1    r2 
_______ _____ 
7.00    7.   

Sử dụng 9 s trong trường hợp này dẫn đến ký tự cơ số nhưng không có chữ số thập phân.

Tôi nên chỉ ra rằng fm là một công cụ sửa đổi định dạng loại bỏ bất kỳ phần đệm nào có thể được áp dụng cho kết quả. Bạn có thể bỏ qua điều này nếu bạn không bận tâm đến kết quả bị độn. Mặc dù, nếu bạn làm điều này, bạn có thể nhận được các số không ở cuối, ngay cả khi sử dụng 9 phần tử định dạng.

Đây là những gì sẽ xảy ra khi tôi xóa fm từ ví dụ trước:

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

Kết quả:

       r1        r2 
_________ _________ 
  7.00      7.00   

Tất nhiên, bạn không chỉ giới hạn ở hai chữ số thập phân - bạn có thể chỉ định nhiều chữ số thập phân hơn trong mô hình định dạng của mình nếu được yêu cầu.

Ví dụ:

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

Kết quả:

7.0000

ROUND() Chức năng

Dưới đây là một ví dụ sử dụng ROUND(number) chức năng:

SELECT ROUND(1.2573, 2)
FROM DUAL;

Kết quả:

1.26

T he ROUND() hàm làm tròn một số đến một chữ số thập phân cho trước. Ở đây, chúng tôi đã chỉ định hai chữ số thập phân, nhưng chúng tôi có thể chỉ định bất kỳ số nào.

Trong trường hợp này, con số đã được làm tròn.

TRUNC() Chức năng

Dưới đây là một ví dụ sử dụng TRUNC(number) chức năng:

SELECT TRUNC(1.2573, 2)
FROM DUAL;

Kết quả:

1.25

TRUNC() hàm cắt ngắn một số đến một vị trí thập phân nhất định. Không xảy ra làm tròn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xác định vị trí của tệp tnsnames.ora có liên quan

  2. Cách sử dụng Giải mã trong Oracle

  3. Oracle chèn vào table2 sau đó xóa khỏi table1, ngoại lệ nếu thất bại

  4. Các tính năng mới hàng đầu của Oracle 12c

  5. Oracle's SYS_GUID () UUID RFC 4122 có tuân thủ không?